use Benchmark qw(:all) ; my $count = 1000; my $foobar = 'foobar' x 1000; timethese($count, { 'Assigned' => sub { my @assigned = $foobar =~ /(foo)/g;}, 'Pushed' => sub { my @pushed; push @pushed, $1 while $foobar =~ /(foo)/g; }, });