my @array = (); # ... populate array here &multi(\@array); # ... later, the subroutine: sub multi { my $arrayReference = shift; my @localArray = @$arrayReference; # ... do stuff to @localArray # ... it actually affects the original array }