Perl variable containing the full string matched by the last successful regular expression pattern match. perldoc mnemonic: "like & in some editors." Read-only and dynamically scoped to the current block, i.e. when a block is closed, any $& set by a match inside that block disappears. Unfortunately, in Perl 5, using $& slows down all regex matches considerably; this includes any matches done by the program, including in other packages. This variable can also be called $MATCH if you use English. Related variables: $` (aka $PREMATCH) and $' (aka $POSTMATCH).
Usage example:
# $& is currently undef
$_ = 'hello, world';
/hello/; # $& is now 'hello'
/,...rld/; # $& is now ', world'
/camel/; # $& is still ', world' -- match
# unsuccessful
{
# $& is still ', world' -- no
# match carried out yet in
# innermost block
/^he/; # $& is 'he'
/^h(?=ello)/; # $& is 'h' -- lookahead is
# zero width
} # $& reverts to ', world'
# (previous value) when block
# is closed