The following pairs are equivalent:
while (<>) {...} # only equivalent in while!
while ($_ = <>) {...}
/^Subject:/
$_ =~ /^Subject:/
tr/a-z/A-Z/
$_ =~ tr/a-z/A-Z/
chop
chop($_)
It is useful to shorten loops, the following example prints the numbers from 1 to 10:
for(1..10) { print; }
| The following variables are global: | |
| $_ | The default input and pattern-searching space. |
| $. | The current input line number of the last filehandle that was read. |
| $/ | The input record separator, newline by default. May be multicharacter. |
| $, | The output field separator for the print operator. |
| $" | The separator that joins elements of arrays interpolated in strings. |
| $\ | The output record separator for the print operator. |
| $? | The status returned by the last `...` command, pipe close or system operator. |
| $] | The perl version number, e.g., 5.001. |
| $; | The subscript separator for multidimensional array emulation. Default is "\034". |
| $! | If used in a numeric context, yields the current value of errno. If used in a string context, yields the corresponding error string. |
| $@ | The Perl error message from the last eval or do EXPR command. |
| $: | The set of characters after which a string may be broken to fill continuation fields (starting with ^) in a format. |
| $0 | The name of the file containing the Perl script being executed. May be assigned to. |
| $$ | The process ID of the currently executing Perl program. Altered (in the child process) by fork. |
| $< | The real user ID of this process. |
| $> | The effective user ID of this process. |
| $( | The real group ID of this process. |
| $) | The effective group ID of this process. |
| $^A | The accumulator for formline and write operations. |
| $^D | The debug flags as passed to perl using -D. |
| $^F | The highest system file descriptor, ordinarily 2. |
| $^I | In-place edit extension as passed to Perl using -i. |
| $^L | Formfeed character used in formats. |
| $^P | Internal debugging flag. |
| $^T | The time (as delivered by time) when the program started. This value is used by the file test operators -M, -A and -C. |
| $^W | The value of the -w option as passed to Perl. |
| $^X | The name by which the currently executing program was invoked. |
| The following variables are context dependent and need not be localized: | |
| $% | The current page number of the currently selected output channel. |
| $= | The page length of the current output channel. Default is 60 lines. |
| $- | The number of lines remaining on the page. |
| $~ | The name of the current report format. |
| $^ | The name of the current top-of-page format. |
| $| | If set to nonzero, forces a flush after every write or print on the currently selected output channel. Default is 0. |
| $ARGV | The name of the current file when reading from <>. |
| The following variables are always local to the current block: | |
| $& | The string matched by the last successful pattern match. |
| $` | The string preceding what was matched by the last successful match. |
| $' | The string following what was matched by the last successful match. |
| $+ | The last bracket matched by the last search pattern. |
| $1...$9... | Contain the subpatterns from the corresponding sets of parentheses in the last pattern successfully matched. $10... and up are only available if the match contained that many subpatterns. |
| @ARGV | Contains the command-line arguments for the script (not including the command name). |
| @EXPORT | Names the methods a package exports by default. |
| @EXPORT_OK | Names the methods a package can export upon explicit request. |
| @INC | Contains the list of places to look for Perl scripts to be evaluated by the do FILENAME and require commands. |
| @ISA | List of base classes of a package. |
| @_ | Parameter array for subroutines. Also used by split if not in array context. |
| %ENV | Contains the current environment. |
| %INC | List of files that have been included with require or do. |
| %OVERLOAD | Can be used to overload operators in a package. |
| %SIG | Used to set signal handlers for various signals. |
| HOME | Used if chdir has no argument. |
| LOGDIR | Used if chdir has no argument and HOME is not set. |
| PATH | Used in executing subprocesses, and in finding the Perl script if -S is used. |
| PERL5LIB | A colon-separated list of directories to look in for Perl library files before looking in the standard library and the current directory. |
| PERL5DB | The command to get the debugger code.
Defaults to BEGIN { require 'perl5db.pl' }. |
| PERLLIB | Used instead of PERL5LIB if the latter is not defined. |
Environment variables are stored in the hash %ENV, they can be accessed as $ENV{'varname'}, example:
print "$ENV{'HOME'}\n";