As in some shells, you can enclose the variable name in
braces to disambiguate it from following alphanumerics
(and underscores). You must also do this when interpolat-
ing a variable into a string to separate the variable name
from a following double-colon or an apostrophe, since
these would be otherwise treated as a package separator:
$who = "Larry";
print PASSWD "${who}::0:0:Superuser:/:/bin/perl\n";
print "We use ${who}speak when ${who}'s here.\n";
Without the braces, Perl would have looked for a $whos-
peak, a $who::0, and a $who's variable. The last two
would be the $0 and the $s variables in the (presumably)
non-existent package "who".
In fact, an identifier within such curlies is forced to be
a string, as is any simple identifier within a hash sub-
script. Neither need quoting. Our earlier example,
$days{'Feb'} can be written as $days{Feb} and the quotes
will be assumed automatically. But anything more compli-
cated in the subscript will be interpreted as an expres-
sion.
In reply to Re: /foo${re}bar/
by hossman
in thread /foo${re}bar/
by eweaverp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |