Full documentation of predefined variables: perlvar
$_ - The default input and pattern-searching space
$a, $b - Special package variables when using sort(), see "sort" in perlfunc
$<digits> - Contains the subpattern from the corresponding set of capturing parentheses from the last pattern match, not counting patterns matched in nested blocks that have been exited already
$& - The string matched by the last successful pattern match (not counting any matches hidden within a BLOCK or eval() enclosed by the current BLOCK)
$` - The string preceding whatever was matched by the last successful pattern match (not counting any matches hidden within a BLOCK or eval enclosed by the current BLOCK)
$' - The string following whatever was matched by the last successful pattern match (not counting any matches hidden within a BLOCK or eval() enclosed by the current BLOCK)
$+ - The text matched by the last bracket of the last successful search pattern
$^N - The text matched by the used group most-recently closed (i.e. the group with the rightmost closing parenthesis) of the last successful search pattern
@+ - This array holds the offsets of the ends of the last successful submatches in the currently active dynamic scope
$* - Set to a non-zero integer value to do multi-line matching within a string, 0 (or undefined) to tell Perl that it can assume that strings contain a single line, for the purpose of optimizing pattern matches
$. - Current line number for the last filehandle accessed
$/ - The input record separator, newline by default
$| - If set to nonzero, forces a flush right away and after every write or print on the currently selected output channel
$, - The output field separator for the print operator
$\ - The output record separator for the print operator
$" - This is like $,
except that it applies to array and slice values interpolated into a double-quoted string (or similar interpreted string)
$; - The subscript separator for multidimensional array emulation
$# - The output format for printed numbers
$% - The current page number of the currently selected output channel
$= - The current page length (printable lines) of the currently selected output channel
$- - The number of lines left on the page of the currently selected output channel
@- - $-[0] is the offset of the start of the last successful match
$~ - The name of the current report format for the currently selected output channel
$^ - The name of the current top-of-page format for the currently selected output channel
$: - The current set of characters after which a string may be broken to fill continuation fields (starting with ^) in a format
$^L - What formats output as a form feed
$^A - The current value of the write() accumulator for format() lines
$? - The status returned by the last pipe close, backtick (``
) command, successful call to wait() or waitpid(), or from the system() operator
${^CHILD_ERROR_NATIVE} - The native status returned by the last pipe close, backtick (``
) command, successful call to wait() or waitpid(), or from the system() operator