$_ The default input and pattern-searching space. The following pairs are equivalent: while (<>) {...} # equivalent only in while! while (defined($_ = <>)) {...} /^Subject:/ $_ =~ /^Subject:/ tr/a-z/A-Z/ $_ =~ tr/a-z/A-Z/ chomp chomp($_) Here are the places where Perl will assume $_ even if you don't use it: * Various unary functions, including functions like ord() and int(), as well as the all file tests ("-f", "-d") except for "-t", which defaults to STDIN. * Various list functions like print() and unlink(). * The pattern matching operations "m//", "s///", and "tr///" when used without an "=~" operator. * The default iterator variable in a "foreach" loop if no other variable is supplied. * The implicit iterator variable in the grep() and map() functions. * The default place to put an input record when a "" operation's result is tested by itself as the sole criterion of a "while" test. Outside a "while" test, this will not happen. (Mnemonic: underline is understood in certain operations.)