use strict; use warnings; my @nums = ( 1, 2, 3, 8, 19, 31, 42, 77, 113, 121, 144 ); my @odds; # 1. Get odd numbers using "for" for (my $i = 0; $i < @nums; $i++) { if (0 != $num[$i] % 2) { push @odds, $_; } } # 2. Get odd numbers using "foreach" foreach (@nums) { ($_ % 2) and push @odds, $_; } # 3. Get odds using "grep" @odds = grep { 0 != ($_ % 2) } @nums; # 4. Get odds using "map" @odds = map { ($_ % 2)? $_: () } @nums; # 5. Demonstrate the folly of breaking out of "map" with "last" @odds = map { ($_ % 2)? $_: last } @nums; #### foreach (@nums) { ($_ % 2) and push @odds, $_ } #### Can't "last" outside a loop block at last_test.pl line 27.