%x = (foo=>1,bar=>2,baz=>3); sub exists_srk(\%$){my($h,$k)=@_; map{$_ eq $k?$_:()}(sort reverse keys %$h)}; print exists_srk(%x,$_) for qw(foo bar baz bat)