If this is a new problem it seems that it may have something to do with the current prototype system.

If map was declared map (&@) {} then all the constructs above would work (since the first argument is always interpreted as a code block/ref and I've tested it with a custom map under 5.6), except that the other map syntax map EXPR, list as opposed to the one under discussion map BLOCK list would not work.

I can't work out how to use the EXPR syntax for user-defined subs (perlsub suggests grep is (&@) which wouldn't work since the first argument to grep can be a block or an re). So map must be a special case in the perl internals but the code that determines must as merlyn says be unable to determine what it should be using when the braces can have two meanings. If map is really special cased then this problem could probably be fixed if there was any real need, for now use {; } as merlyn suggested of create a wrapper for map which does have a prototype of (&@).


In reply to Re: Syntax question with by repson
in thread Syntax question with by rlk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.