Perl Programming Question:
Download Questions PDF

How do I sort a hash by the hash value?

Perl Programming Interview Question
Perl Programming Interview Question

Answer:

Here's a program that prints the contents
of the grades hash, sorted numerically by the hash value:

#!/usr/bin/perl -w

# Help sort a hash by the hash 'value', not the 'key'.
to highest).
sub hashValueAscendingNum {
$grades{$a} <=> $grades{$b};
}



# Help sort a hash by the hash 'value', not the 'key'.
# Values are returned in descending numeric order
# (highest to lowest).
sub hashValueDescendingNum {
$grades{$b} <=> $grades{$a};
}


%grades = (
student1 => 90,
student2 => 75,
student3 => 96,
student4 => 55,
student5 => 76,
);

print "ntGRADES IN ASCENDING NUMERIC ORDER:n";
foreach $key (sort hashValueAscendingNum (keys(%grades))) {
print "tt$grades{$key} tt $keyn";
}

print "ntGRADES IN DESCENDING NUMERIC ORDER:n";
foreach $key (sort hashValueDescendingNum (keys(%grades))) {
print "tt$grades{$key} tt $keyn";
}

Download Perl Programming Interview Questions And Answers PDF

Previous QuestionNext Question
What does new $cur->{LINK} do? (Assume the current package has no new() function of its own.)How to read file into hash array ?