# Tested code; outputs: # B E A C D my @original = (5, 100, 2, 8, 40); my $s = 'A'; my $n = 1; my @sorted = map { $_->[2] } sort { $a->[1] <=> $b->[1] } map { [ @$_, $s++ ] } sort { $a->[0] <=> $b->[0] } map { [ $_, $n++ ] } @original; print "@sorted\n";