You may think of it as a data pipeline from right to left. The 1..4 operator produces a list of values fed as an argument to map; map itself produces here another list of values (2 to 5) fed as argument to join; join produces a string made of the numbers separated by spaces, fed to print. Even though the syntax is quite different, this dataflow programming style of construct is very much in the spirit of the various dialects of Lisp and some other functional languages. You may add parens if you feel more comfortable with them, but with a bit of experience you will probably end up agreeing with my view that the syntax is actually clearer without the parens. If you know Unix and shell programming, think of the | operator (except that, with Perl, you have to read pipeline from right to left).

Oh, and BTW, once you are a bit more used to Perl (this is probably a bit too early at this point), read Mark-Jason Dominus' book "Higher Order Perl" (PDF available for free on his site), in which he shows that Perl has many features of functional languages, including call back functions, first-class citizen functions, anonymous subroutines, closures, function factories, currying, etc.


In reply to Re^5: map sub to list? by Laurent_R
in thread map sub to list? by pldanutz

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.