> cat Module.pm script.pl; perl script.pl #---- Module.pm warn "NO NO NO"; package Module; sub whatever {} 1; #---- script.pl use Module; #---- output NO NO NO at Module.pm line 1. #### $\="\n"; package TST; print "exists main::_ ", exists $main::{_}; print -f 'Module.pm' && -w _; print "exists TST::_ ", exists $TST::{_}; print -w main::_; #### # OUTPUT exists main::_ 1 1 exists TST::_ 1 #### #5.10 If any of the file tests (or either the "stat" or "lstat" operators) are given the special filehandle consisting of a solitary underline, then the stat structure of the previous file test (or stat operator) is used, saving a system call. # ... special cases + example code ... # BUT ALSO As of Perl 5.9.1, as a form of purely syntactic sugar, you can stack file test operators, in a way that "-f -w -x $file" is equivalent to "-x $file && -w _ && -f _