my @a = (1,2,3,4,6); print Dumper increment(increment(\@a)); sub increment{ my $d=shift; my @b; for my $i (1..$#$d){ my @a = @$d[$i-1..$i]; push @b,\@a; } \@b }