in reply to Re^5: map versus for
in thread map versus for
map: used when one needs to create create a table of data which will be used at a future time.
I personally believe that you nearly got it: more precisely, map is used whenever you clearly have an input list that you want to be (functionally) transformed in an output list. In some sense your reference to the "future time" is correct even if this future may be just as close to the map() itself as in "being in the very same statement." At the same time, you can also set side effects within the map() block (both to some "external" variables and to the elements of the input list themselves) but you generally don't want to do that. It just... doesnt' smell like that:
C:\temp>perl -E "@a=1..3; @b=map 2*($_*=2) => @a; say qq|A = [@a], B = + [@b]|" A = [2 4 6], B = [4 8 12]
|
---|