use warnings; use strict; use Benchmark qw/cmpthese/; cmpthese(-2, { plain => sub { my @array = 1..50; my @add = 100..150; unshift @array, @add; }, reverse => sub { my @array = 1..50; my @add = 100..150; unshift @array, reverse @add; }, loop => sub { my @array = 1..50; my @add = 100..150; unshift @array, $_ for @add; }, }); __END__ Rate loop reverse plain loop 278364/s -- -31% -32% reverse 400772/s 44% -- -2% plain 407520/s 46% 2% --