use v5.24; use warnings; use Benchmark qw(cmpthese); sub find_key { my ($hash, $current_sub) = @_; for my $key ( keys $hash->%* ) { return $key if $hash->{$key} == $current_sub; } return "not found"; } my $subs; cmpthese( 2, $subs = { AAA => sub { say ''; say 'aaa'; say find_key($subs, __SUB__) }, BBB => sub { say ''; say 'bbb'; say find_key($subs, __SUB__) }, } );