map is a special "short-hand" for a "foreach loop".
All map statements can be expressed as a "foreach loop".
Consider:
#!/usr/bin/perl
use strict;
use warnings;
my @array = (1,2,3);
@array = map {$_+1}@array;
print "@array\n"; #prints: 2 3 4
foreach my $num (@array)
{
$num++;
}
print "@array\n"; #prints: 3 4 5
Update: As an additional comment, sometimes I see a comment like "I didn't want to use a loop, so I used map". That is wrong. Map is a looping instruction whether it looks that way in the source code or not. A map vs a foreach loop winds up being basically the same in terms of how the input array is processed. I've seen 1/2 page map statements which in my opinion is an abuse of the feature. I use map for simple one line transformation operations. Mileage and situations vary. |