| $_ | The default or implicit variable. |
| @_ | Subroutine parameters. |
| $a $b | sort comparison routine variables. |
| @ARGV | The command-line args. |
| Regular Expressions | |
| $<digit> | Regexp parenthetical capture holders. |
| $& | Last successful match (degrades performance). |
| ${^MATCH} | Similar to $& without performance penalty. Requires /p modifier. |
| $` | Prematch for last successful match string (degrades performance). |
| ${^PREMATCH} | Similar to $` without performance penalty. Requires /p modifier. |
| $' | Postmatch for last successful match string (degrades performance). |
| ${^POSTMATCH} | Similar to $' without performance penalty. Requires /p modifier. |
| $+ | Last paren match. |
| $^N | Last closed paren match (last submatch). |
| @+ | Offsets of ends of successful submatches in scope. |
| @- | Offsets of starts of successful submatches in scope. |
| %+ | Like @+, but for named submatches. |
| %- | Like @-, but for named submatches. |
| $^R | Last regexp (?{code}) result. |
| ${^RE_DEBUG_FLAGS} | Current value of regexp debugging flags. See use re 'debug'; |
| ${^RE_TRIE_MAXBUF} | Control memory allocations for RE optimizations for large alternations. |
| Encoding | |
| ${^ENCODING} | The object reference to the Encode object, used to convert the source code to Unicode. |
| ${^OPEN} | Internal use: \0 separated Input / Output layer information. |
| ${^UNICODE} | Read-only Unicode settings. |
| ${^UTF8CACHE} | State of the internal UTF-8 offset caching code. |
| ${^UTF8LOCALE} | Indicates whether UTF8 locale was detected at startup. |
| IO and Separators | |
| $. | Current line number (or record number) of most recent filehandle. |
| $/ | Input record separator. |
| $| | Output autoflush. 1=autoflush, 0=default. Applies to currently selected handle. |
| $, | Output field separator (lists) |
| $\ | Output record separator. |
| $" | Output list separator. (interpolated lists) |
| $; | Subscript separator. (Use a real multidimensional array instead.) |
| Formats | |
| $% | Page number for currently selected output channel. |
| $= | Current page length. |
| $- | Number of lines left on page. |
| $~ | Format name. |
| $^ | Name of top-of-page format. |
| $: | Format line break characters |
| $^L | Form feed (default "\f"). |
| $^A | Format Accumulator |
| Status Reporting | |
| $? | Child error. Status code of most recent system call or pipe. |
| $! | Operating System Error. (What just went 'bang'?) |
| %! | Error number hash |
| $^E | Extended Operating System Error (Extra error explanation). |
| $@ | Eval error. |
| ${^CHILD_ERROR_NATIVE} | Native status returned by the last pipe close, backtick (`` ) command, successful call to wait() or waitpid(), or from the system() operator. |
| ID's and Process Information | |
| $$ | Process ID |
| $< | Real user id of process. |
| $> | Effective user id of process. |
| $( | Real group id of process. |
| $) | Effective group id of process. |
| $0 | Program name. |
| $^O | Operating System name. |
| Perl Status Info | |
| $] | Old: Version and patch number of perl interpreter. Deprecated. |
| $^C | Current value of flag associated with -c switch. |
| $^D | Current value of debugging flags |
| $^F | Maximum system file descriptor. |
| $^I | Value of the -i (inplace edit) switch. |
| $^M | Emergency Memory pool. |
| $^P | Internal variable for debugging support. |
| $^R | Last regexp (?{code}) result. |
| $^S | Exceptions being caught. (eval) |
| $^T | Base time of program start. |
| $^V | Perl version. |
| $^W | Status of -w switch |
| ${^WARNING_BITS} | Current set of warning checks enabled by use warnings; |
| $^X | Perl executable name. |
| ${^GLOBAL_PHASE} | Current phase of the Perl interpreter. |
| $^H | Internal use only: Hook into Lexical Scoping. |
| %^H | Internaluse only: Useful to implement scoped pragmas. |
| ${^TAINT} | Taint mode read-only flag. |
| ${^WIN32_SLOPPY_STAT} | If true on Windows stat() won't try to open the file. |
| Command Line Args | |
| ARGV | Filehandle iterates over files from command line (see also <>). |
| $ARGV | Name of current file when reading <> |
| @ARGV | List of command line args. |
| ARGVOUT | Output filehandle for -i switch |
| Miscellaneous | |
| @F | Autosplit (-a mode) recipient. |
| @INC | List of library paths. |
| %INC | Keys are filenames, values are paths to modules included via use, require,or do. |
| %ENV | Hash containing current environment variables |
| %SIG | Signal handlers. |
| $[ | Array and substr first element (Deprecated!). |
See perlvar for detailed descriptions of each of these (and a few more) special variables.
When modifiying special variables, it is often a good practice to localize the effects of the change. ie,
my @array = ( 1, 2, 3, 4, 5 ); print "@array\n"; { local $" = "\t"; print "@array\n"; } print "@array\n";
And the output.....
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
The purpose of this node is to provide a super-concise categorized quick crossreference to Perl's special variables. perlvar provides a list in asciibetical order but doesn't really put the variables into easy to find categories.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Perl Special Variables Quick Reference
by ysth (Canon) on May 14, 2004 at 03:48 UTC | |
by ambrus (Abbot) on May 14, 2004 at 19:34 UTC | |
|
Re: Perl Special Variables Quick Reference
by Anonymous Monk on May 14, 2004 at 05:06 UTC | |
by davido (Cardinal) on May 14, 2004 at 06:30 UTC | |
|
Re: Perl Special Variables Quick Reference
by itub (Priest) on May 14, 2004 at 13:37 UTC | |
|
Re: Perl Special Variables Quick Reference
by planetscape (Chancellor) on Apr 01, 2009 at 18:32 UTC | |
|
Re: Perl Special Variables Quick Reference
by wazoox (Prior) on Dec 18, 2008 at 17:43 UTC | |
|
Re: Perl Special Variables Quick Reference
by pmonk4ever (Friar) on Dec 17, 2008 at 21:38 UTC | |
|
Re: Perl Special Variables Quick Reference
by Argel (Prior) on Nov 04, 2009 at 02:23 UTC | |
|
Re: Perl Special Variables Quick Reference
by ysthzilla (Initiate) on Aug 04, 2011 at 03:09 UTC |