Need to maintain both key and value in code to find which key has a largest value among all the key pairs in hash. Following is a one more way to achieve your requirement.
use strict;
use warnings;
use Data::Dumper;
# initializing hash
%hash= ( '1' => '8',
'2' => '6',
'3' => '3',
'4' => '7');
# print the structure
print Dumper \%hash;
# maintaining key and value of highest value in hash
# 0th index => Key
# 1st index => Value
my @larger =(0,0);
while (my ($key, $value) = each %hash) {
# compares value with each value of hash
# stores key and value whenever current value is greater than prev
+ious value
@larger=($key, $value) if ($larger[1] < $value) ;
print "$key key has a value $value \n";
}
# finally prints the key which has larger value
+
print $larger[0]. " key has the larger value\n";