As the previous poster already said map and grep have similarities. But map and foreach also have similarities…silly transitive property…
A small blurb I copy/pasted from http://www.hidemail.de/blog/perl_tutor.shtml#map_grep_foreach (bolded by moi):
Map can select elements from an array, just like grep. The following two statements are equivalent (EXPR represents a logical expression).
@selected = grep EXPR, @input;
@selected = map { if (EXPR) { $_ } } @input;
Also, map is just a special case of a foreach statement. The statement:
@transformed = map EXPR, @input;
(where EXPR is some expression containing $_) is equivalent to (if @transformed is undefined or empty):
foreach (@input) { push @transformed, EXPR; }
In general, use grep to select elements from an array and map to transform the elements of an array. Other array processing can be done with one of the loop statements (foreach, for, while, until, do while, do until, redo). Avoid using statements in grep/map blocks that do not affect the grep/map results; moving these "side-effect" statements to a loop makes your code more readable and cohesive.
I'm so adjective, I verb nouns! chomp; # nom nom nom
|