use strict; use warnings; use Benchmark qw( cmpthese ); my @list = map { '' . int(rand(100)) } 1..1000; sub map_test { my %counts = (); map { ++$counts{$_} } @list; 1; } sub foreach_test { my %counts = (); ++$counts{$_} for @list; 1; } cmpthese(-3, { map => \&map_test, foreach => \&foreach_test, });