in reply to reusable hash value sort

Tie::SortHash may be what you want here.

use Tie::SortHash; my %people = ( 'John Doe' => 33, 'Jane Doe' => 29, 'Jim Smith' => 15, ); my $sortblock = q( my $c = (split /\s+/, $a)[1]; my $d = (split /\s+/, $b)[1]; $c cmp $d || $hash{$a} <=> $hash{$b} ); tie %people, 'Tie::SortHash', \%people, $sortblock; foreach my $name ( keys %people ) { print $name . " is " . $people{$name} . " years old.\n"; } # This output will always be Jane Doe is 29 years old. John Doe is 33 years old. Jim Smith is 15 years old.

_______________
D a m n D i r t y A p e
Home Node | Email