Sunday 15 November 2009

More about $_

$ARG
$_ The default input and pattern-searching space. The following pairs are equivalent:
while (&lt>) {...} # 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.

No comments:

Post a Comment

Tweets by @sriramperumalla