use strict; use warnings; my @array=qw(Q W E R T Y U I O P); my @sorted_meta=sort { $a->[0] cmp $b->[0] } map { [ $array[$_] , $_ ] } 0..$#array; my @sorted=map { $_->[0] } @sorted_meta; local $,=" "; local $\="\n"; print "Orig: ",@array; print "Meta: ",map { ("[",@{$_},"]") } @sorted_meta; print "Sort: ",@sorted; __END__ Outputs: Orig: Q W E R T Y U I O P Meta: [ E 2 ] [ I 7 ] [ O 8 ] [ P 9 ] [ Q 0 ] [ R 3 ] [ T 4 ] [ U 6 ] [ W 1 ] [ Y 5 ] Sort: E I O P Q R T U W Y