Your skill will accomplish what the force of many cannot |
|
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
njcodewarrior,
You're right in that the map function acts like a loop. Where is gets tricky is when you assign the output of the map function to a hash, because the hash assignment operation evaluates two elements at a time. So Perl does the equivalent of this: As other monkers already pointed out the "odd number of elements" warning will be generated when you feed the hash with a group that has an odd number of elements. Now if we look at the map function itself in your code The effect of the above code is that the elements are copied one by one. At the same time the element in the source (!) group is changed/incremented. Thatīs probably not what you wanted, right? If the destination of the map function is a hash then commonly the map is used to produce 2 elements at a time in a list fashion: For clarity purpose the comma operator is typically replaced by a '=>' operator to indicate that we mean to produce something for a hash. I'm not sure what you hoped to achieve through your code but hopefully this shows why your code behaved as it did In reply to Re^3: Hash assignments using map
by varian
|
|