Global Special Variables
The most common special variable is $_
, which contains the default input and
pattern-searching string. For example:
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
andint
, as well as the all file tests (-f
,-d
), except for-t
, which defaults toSTDIN
.Various list functions such as
print
andunlink
.The pattern-matching operations
m//
,s///
, andtr///
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
andmap
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 awhile
test, this does not happen.
The following is a complete listing of global special variables:
$_
$ARG
The default input and pattern-searching space.
$
.$INPUT_LINE_NUMBER
$NR
The current input line number of the last filehandle that was read. An explicit close on the filehandle resets the line number.
$/
$INPUT_RECORD_SEPARATOR
$RS
The input record separator; newline by default. ...
Get Perl in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.