my ($rank) = grep {$sorted_array[$_] eq $my_target} 0..$#sorted_array; #### sub index_of { my $thing = shift; my @indexes = grep $_[$_] eq $thing, 0..$#_; wantarray ? @indexes : $indexes[0]; } #### my $rank = index_of($my_target, @sorted_array); #### my %sorted_index; $sorted_index{$sorted_array[$_]} = $_ foreach 0..$#sorted_array; #### my %sorted_index = map {($_, $sorted_array[$_])} 0..$#sorted_array; #### my @doubled = map {($_, $_)} 1..50_000; #### my %sorted_index; @sorted_index{@sorted_array} = 0..$#sorted_array;