my $i = 0; my @sorted_indicies = map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [ $_, $i++ ] } @array; # OR my @sorted_indicies = map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [ $array[$_], $_ ] } (0..$#array);