@t = ( {b=>1,w=>10}, {b=>3,w=>30}, {b=>2,w=>40}, {b=>7,w=>60}, {b=>4,w=>70}, {b=>6,w=>90}, {b=>5,w=>100}); print "## RAW #####################\n"; pout(@t); @bb = sort func @t; sub func{ return $a->{b} <=> $b->{b}; } print "## SORTED ##################\n"; pout(@bb); sub pout { foreach $f1 (@_){ foreach $f2 (sort keys %$f1){ print "$f2 $f1->{$f2}\n"; } print "------\n"; } }