use Benchmark 'cmpthese'; my @data = map { rand } 0 .. 4000; cmpthese(-2, { copy => sub { copy(@data) }, ref => sub { ref(\@data) } }); sub copy { my $sum; $sum += $_[$_] for 0 .. $#_; return $sum } sub ref { my $sum; $sum += $_[0][$_] for 0 .. $#{$_[0]}; return $sum } __END__ Rate copy ref copy 370/s -- -100% ref 1884708/s 508700% --