$b

$b Special package variables when using sort(), see sort. Because of this specialness $a and $b don't need to be declared (using use vars , or our()) even when using the strict 'vars' pragma. Don't lexicalize them with my $a or my $b if you want to be able to use them in the sort() comparison block or function.

$ARG

$ARG

$a

$a

$ACCUMULATOR

$ACCUMULATOR

$@

$@ The Perl syntax error message from the last eval() operator. If $@ is the null string, the last eval() parsed and executed correctly (although the operations you invoked may have failed in the normal fashion). Warning messages are not collected in this variable. You can, however, set up a routine to process warnings by setting $SIG{__WARN__} as described in %SIG. Mnemonic: Where was the syntax error "at"?

$?

$? The status returned by the last pipe close, backtick (`` ) command, successful call to wait() or waitpid(), or from the system() operator. This is just the 16-bit status word returned by the traditional Unix wait() system call (or else is made up to look like it). Thus, the exit value of the subprocess is really ($?>> 8 ), and $? & 127 gives which signal, if any, the process died from, and $? & 128 reports whether there was a core dump. Additionally, if the h_errno variable is

$=

$= The current page length (printable lines) of the currently selected output channel. The default is 60. Mnemonic: = has horizontal lines.

$<digits> ($1, $2, ...)

$<digits> ($1, $2, ...) Contains the subpattern from the corresponding set of capturing parentheses from the last successful pattern match, not counting patterns matched in nested blocks that have been exited already. These variables are read-only and dynamically-scoped. Mnemonic: like \digits.

$&gt;

$> The effective uid of this process. For example: $< = $>; # set real to effective uid ($<,$>) = ($>,$<); # swap real and effective uids You can change both the effective uid and the real uid at the same time by using POSIX::setuid() . Changes to $> require a check to $! to detect any possible errors after an attempted change. $< and $> can be swapped only on machines supporting setreuid() . Mnemonic: it's the uid you went to, if you're running setui

$;

$; The subscript separator for multidimensional array emulation. If you refer to a hash element as $foo{$x,$y,$z} it really means $foo{join($;, $x, $y, $z)} But don't put @foo{$x,$y,$z} # a slice--note the @ which means ($foo{$x},$foo{$y},$foo{$z}) Default is "\034", the same as SUBSEP in awk. If your keys contain binary data there might not be any safe value for $; . Consider using "real" multidimensional arrays as described in perllol. Mnemonic: comma (the syntactic subscript separator)