Perl: Hash sortieren nach Werten

Ein Hash mit Hash enthält in einer "Spalte" einen Wert nach dem diese als Liste sortiert werden soll.

my %hash = ();

$hash{'hans'}->{points} = 5;
$hash{'hans'}->{foo} = 'fii';

$hash{'boo'}->{points} = 10;
$hash{'boo'}->{foo} = 'fiii';

$hash{'foo'}->{points} = 1;
$hash{'foo'}->{foo} = 'fi';

foreach my $key (sort { $hash{$a}->{points} <=> $hash{$b}->{hash} } keys %hash) {
        print $hash{$key}->{points} ;
}

Hash nach länge der Strings sortieren

my @sort_by_length = sort { length($a) <=> length($b) }  keys %var;