my %values = ( "apple" => "1", "pear" => "3", "orange" => "3", "melon" => "2", "grape" => "2"); #### Level 3: Pear, Orange Level 2: Melon, Grape Level 1: apple #### my %hash = ( 1 => ["apple"], 2 => ["melon", "grape"], 3 => ["pear", "orange"] ); $hash{1}[1] = "pickle"; print "Level $_\n@{$hash{$_}}\n\n" for reverse sort keys %hash;