use strict; use warnings; use Benchmark; my @list = ( 1 .. 500 ); my $count = 25000; timethese ( $count, { 'Map' => sub { my $result = 1; map { $result *= $_ } @list; }, 'For' => sub { my $result = 1; $result *= $_ for @list; } } ); __OUTPUT__ Benchmark: timing 25000 iterations of For, Map... For: 11 wallclock secs (10.62 usr + 0.00 sys = 10.62 CPU) @ 2355.16/s (n=25000) Map: 11 wallclock secs (11.18 usr + 0.00 sys = 11.18 CPU) @ 2236.94/s (n=25000)