$ perl -Mstrict -Mwarnings -E ' use Benchmark qw{cmpthese}; my @original_array = (10, 20); sub glob_double { local *copy = shift; for (@::copy) { $_ *= 2; } } sub ref_double { my $array_ref = shift; for (@$array_ref) { $_ *= 2; } } cmpthese(-1 => { glob => sub { @::array = @original_array; glob_double(*array) }, ref => sub { my @array = @original_array; ref_double(\@array) }, }); ' Rate ref glob ref 546132/s -- -28% glob 763738/s 40% --