#!/usr/bin/perl -w
use strict;
my %tmp = (
"key1" => 3,
"key2" => 6,
"key3" => 1,
"key4" => 3,
);
my %sorted_by_values = ();
for my $key ( keys %tmp ) { my $value = $tmp{ $key };
if ( exists $sorted_by_values{ $value } ) { push @{ $sorted_by_values{ $value } }, $key; } else {
$sorted_by_values{ $value } = [ $key ];
}
}
for my $value ( sort keys %sorted_by_values ) { for my $key ( sort @{ $sorted_by_values{ $value } } ) { printf "%s => %d\n", $key, $value; }
}
IyEvdXNyL2Jpbi9wZXJsIC13Cgp1c2Ugc3RyaWN0OwoKbXkgJXRtcCA9ICgKICAia2V5MSIgPT4gMywKICAia2V5MiIgPT4gNiwKICAia2V5MyIgPT4gMSwKICAia2V5NCIgPT4gMywKKTsKCm15ICVzb3J0ZWRfYnlfdmFsdWVzID0gKCk7Cgpmb3IgbXkgJGtleSAoIGtleXMgJXRtcCApIHsKCW15ICR2YWx1ZSA9ICR0bXB7ICRrZXkgfTsKCQogIAlpZiAoIGV4aXN0cyAkc29ydGVkX2J5X3ZhbHVlc3sgJHZhbHVlIH0gKSB7CiAgICAJcHVzaCBAeyAkc29ydGVkX2J5X3ZhbHVlc3sgJHZhbHVlIH0gfSwgJGtleTsKICAJfSBlbHNlIHsKICAgIAkkc29ydGVkX2J5X3ZhbHVlc3sgJHZhbHVlIH0gPSBbICRrZXkgXTsKICAJfQp9Cgpmb3IgbXkgJHZhbHVlICggc29ydCBrZXlzICVzb3J0ZWRfYnlfdmFsdWVzICkgewoJZm9yIG15ICRrZXkgKCBzb3J0IEB7ICRzb3J0ZWRfYnlfdmFsdWVzeyAkdmFsdWUgfSB9ICkgewogIAkJcHJpbnRmICIlcyA9PiAlZFxuIiwgJGtleSwgJHZhbHVlOwoJfQp9