foreach ('hickory','dickory','doc') {
print;
}
The first time the loop is executed,
"hickory" is printed. The second
time around, "dickory" is printed,
and the third time, "doc" is
printed. That's because in each iteration of the
loop, the current string is placed in $_ and is
used by default by print. Here are the places
where Perl will assume $_, even if you
don't specify it:
-
Various unary functions, including functions such as
ord and int, as well as the all
file tests (-f, -d), except for
-t, which defaults to STDIN.
-
Various list functions such as 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 line-input
operation's result is tested by itself as the sole
criterion of a while test (i.e.,
<filehandle>).
Note that outside of a while test, this does not
happen.
The following is a complete listing of global special variables: