my @a1 = qw/a b c d e f g/; my @a2 = qw/h i j k l m n/; sub mysub { my ($r1, $r2) = @_; # make a copy of the first array my @a1_copy = @{ $r1 }; $a1_copy[2] = 'blah'; # only affects this copy # tweak the original @a2 $r2->[2] = 'blah; # affects @a2 } mysub(\@a1, \@a2);