### TMTOWTDI : ### - SnippetID: tsid="20040520_1649_06239" ### description: multiple ways to loop and munge an array ### details: | ### The following snippet shows a handful of ### alternate coding styles for looping and ### munging an array. use strict; use warnings; my (@array, @outcopy) = (); @array = qw(1 2 3 4 5); ### NOTE: we *dont* care about making an 'output copy' of the array $_ *= 2 foreach @array; print "@array"; print "\n............. \n"; $_ *= 2 for @array; print "@array"; print "\n--------------\n"; map {$_ *= 2 } @array; print "@array"; print "\n............. \n"; for (@array) {$_ *= 2 }; print "@array"; print "\n--------------\n"; foreach (@array) {$_ *= 2 }; print "@array"; print "\n............. \n"; ### NOTE: here we DO care about making an 'output copy' ### notice that both produce same effect, but foreach ### requires additional code because it ### does not produce the side-effect @outcopy = map {$_ *= 2 } @array; print "@outcopy"; print "\n--------------\n"; @outcopy = (); ###<-- additional line foreach (@array) {push @outcopy, $_ *= 2 }; print "@outcopy"; print "\n............. \n";