use strict; use warnings; use 5.010; my @arr = qw{ a c a a a c a t a t z }; my @sortedIndices = map { $_->[ 0 ] } sort { $a->[ 1 ] cmp $b->[ 1 ] } map { [ $_, join q{}, @arr[ $_ .. $#arr ] ] } 0 .. $#arr; say join q{}, @arr[ $sortedIndices[ $_ ] .. $#arr ] for 0 .. $#sortedIndices;