my %people = ( 'John Doe' => 25, 'Jane Doe' => 39, 'Jim Baker' => 30 ); my $sortblock = q( my( $c, $d ) = ( $a, $b ); $c =~ s/\w+\s//; $d =~ s/\w+\s//; $c cmp $d || $hash{$b} <=> $hash{$a} ); tie %people, 'Tie::SortHash', { %people }, $sortblock;