#!/usr/bin/perl use strict; use warnings; use Tie::Hash::Sorted; my $sort = sub { my $hash = shift; [ sort { $hash->{$b} <=> $hash->{$a} || $a cmp $b } keys %$hash ]; }; tie my %sorted_data, 'Tie::Hash::Sorted', 'Sort_Routine' => $sort; %sorted_data = ( rock => 3, candle => 25, bug => 3, rain => 12, dust => 17, spider => 12 ); print "$_ : $sorted_data{$_}\n" for keys %sorted_data;