in reply to Re^2: map()'s BLOCK and deviations from othogonality...
in thread map()'s BLOCK and deviations from othogonality...
Because curly brackets (braces) are used for several other +things including BLOCKs, you may occasionally have to disambiguate + braces at the beginning of a statement by putting a "+" or a "retu +rn" in front so that Perl realizes the opening brace isn't startin +g a BLOCK. The economy and mnemonic value of using curlies is +deemed worth this occasional extra hassle. For example, if you wanted a function to make a new hash an +d return a reference to it, you have these options: sub hashem { { @_ } } # silently wrong sub hashem { +{ @_ } } # ok sub hashem { return { @_ } } # ok On the other hand, if you want the other meaning, you can d +o this: sub showem { { @_ } } # ambiguous (currently o +k, but may change) sub showem { {; @_ } } # ok sub showem { { return @_ } } # ok The leading "+{" and "{;" always serve to disambiguate the +expres- sion to mean either the HASH reference, or the BLOCK.
-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: map()'s BLOCK and deviations from othogonality...
by blazar (Canon) on Feb 25, 2005 at 09:37 UTC |