Special Variables

Some variables have a predefined and special meaning in Perl. They are the variables that use punctuation characters after the usual variable indicator ($, @, or %), such as $_. The explicit, long-form names shown are the variables' equivalents when you use the English module by including "use English;" at the top of your program.

Global Special Variables

The most commonly used special variable is $_, which contains the default input and pattern-searching string. For example, in the following lines:

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:

The following is a complete listing of global special variables:

Global Special Arrays and Hashes

Global Special Filehandles

Global Special Constants

Regular Expression Special Variables

For more information on regular expressions, see "Regular Expressions" later in this chapter.

Filehandle Special Variables

Most of these variables only apply when using formats. See "Formats" later in this chapter.