@A=(1,2,3,4,5,6,7,8,9); # some array $n = 3; # some n while( @B = splice @A, $i++, $n ) { @A= ( [@B], @A ) }; @A = reverse @A; # To put it back in the right order.