in reply to Re^4: map sub to list?
in thread map sub to list?

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.