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.
In reply to Re^3: map()'s BLOCK and deviations from othogonality...
by merlyn
in thread map()'s BLOCK and deviations from othogonality...
by blazar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |