in reply to Re^2: Hash assignments using map
in thread Hash assignments using map
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.my $i=0; while ($i<$#group) { $hash{$group[$i]}=$group[$i+1]; $i+=2; }
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?@destination = map {$_++} @source
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..... = map { ("key$_" , "value$_") } .....
I'm not sure what you hoped to achieve through your code but hopefully this shows why your code behaved as it did.... = map { ("key$_" => "value$_") } .....
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^4: Hash assignments using map
by njcodewarrior (Pilgrim) on Feb 24, 2007 at 20:14 UTC | |
by shmem (Chancellor) on Feb 24, 2007 at 20:32 UTC |