sub inc{ my $ref=shift; my $span=shift; $span?($span--):($span=1); my @b=map{ clone([@$ref[$_-$span..$_]]) }($span..$#$ref); \@b } sub clone{#clone references my $ref=shift; my@array=map{ ref($_)?clone($_):$_ }@$ref; \@array } my@b=(1..5); my $c = inc(inc(\@b)); print Dumper $c;