This is even documented in perlref:You're right! (What else?!?)
I'm also ashamed, since I had read that section sometimes... OTOH retrospectively I'm slightly surprised that at least a few experienced perl hackers from clpmisc didn't recognize it at a first glance either...
Hmmm, it seems that the docs concentrate on the somewhat opposite situation, i.e. that in which a hashref is mistaken for a block.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 "return" in front so that Perl realizes the opening brace isn't starting a BLOCK. The economy and mnemonic value of using curlies is deemed worth this occasional extra hassle.
I must say that while I find "+{" aesthetically appealing, I can't say the same of "{;". But of course that's just me...The leading "+{" and "{;" always serve to disambiguate the expres- sion to mean either the HASH reference, or the BLOCK.
In reply to Re^4: map()'s BLOCK and deviations from othogonality...
by blazar
in thread map()'s BLOCK and deviations from othogonality...
by blazar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |