in reply to meaning for the hash code

You need to wrap your code between <code> tags, like that :
use Tie::Hash::Sorted; my %ages = ( 'John' => 33, 'Jacob' => 29, 'Jingle' => 15, 'Heimer' => 48, 'Smitz' => 12, ); my $sort_by_numeric_value = sub { my $hash = shift; sort {$hash->{$b} <=> $hash->{$a}} keys %$hash ; }; tie my %sorted_ages, 'Tie::Hash::Sorted', 'Hash' => \ %ages, 'Sort_Routine' => $sort_by_numeric_value; for my $name ( keys %sorted_ages ) { print "$name is $sorted_ages{$name} years old.\n"; }
The main part of this piece of code lies in the sub definition, which is, essentially, giving an explicit name to this particular use of sort, sorting the hash it's given by the numeric value of the values inside it.

Using then the magic of Tie::Hash::Sorted, you apply this subroutine to %ages, and iterate through it to print out the names of the inviduals in ascending order of their ages.

Hope that's clear enough.

Lu.