You are viewing the version of this documentation from Perl 5.8.1. View the latest version
$ARG
$_

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 <FH> 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.)