in reply to getting hash key with value
This will only work is the values are unique but all you need to do is create a reversed hash lookup table and use that:
my %h = qw( 1 2 3 4 5 6 ); my %rev_h = reverse %h; use Data::Dumper; print Data::Dumper::Dumper(\%h,\%rev_h); __DATA__ $VAR1 = { '1' => '2', '3' => '4', '5' => '6' }; $VAR2 = { '6' => '5', '4' => '3', '2' => '1' };
If you can't guarantee the values are unique then you have to iterate. Use grep:
my @keys = grep{ $hash{$_} eq $find } keys %hash;
|
|---|