Then why even bother with map to begin with?
Why not? Some people bother with foreach, one could question that as well.
And no, that isn't as clear.
Once again, what's clear and what isn't is highly subjective, heavily influenced by ones experience.
All map blocks need to be evaluated for each element in the list,
Uhm, yes. That's the point of a map, isn't? And perhaps you haven't realized it, all foreach blocks are evaluated for each element of the list as well.
you end up putting the result at the end, all by itself:
Yeah, neat, isn't? That's the point of map, you know.
This is a side-effect, and it isn't as clear or as readable as an explicit push would be.
Actually, it's not a side-effect. Modifying a variable (what push does) is a side-effect.

But I understand what you are saying. It's utterly unclear to write a map this way. After all, it's also unclear to return a result from a subroutine; it's much clearer if the subroutine explicitly assigns the return value to a variable. All well written programs do.


In reply to Re^6: "advanced" Perl functions and maintainability by Anonymous Monk
in thread "advanced" Perl functions and maintainability by geektron

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.