#!/usr/bin/perl use strict; use warnings; use Tie::Hash::Sorted; my $sort_by_value = sub { my $hash = shift; [ sort {$hash->{$b} cmp $hash->{$a}} keys %$hash ]; } tie my %sorted_hash, 'Tie::Hash::Sorted', 'Sort_Routine' => $sort_by_value; %sorted_hash = (k1=> 'v2', k2=> 'v1'); print "$_ : $sorted_hash{$_}\n" for keys %sorted_hash;