Какой самый элегантный способ вывернуть хеш наизнанку?

Каков самый элегантный способ вывернуть хеш наизнанку?

Под этим я подразумеваю замену ключей значениями и наоборот (при условии, что все значения уникальны на 100%).

Например

Начните с

my %start = (1=>"a", 2=>"b", 3=>"c");

# ...

# PROFIT: 
my %finish = ("c" => 3, "b" => 2, "a" => 1);

Я знаю, что могу сделать это методом грубой силы:

foreach my $key (keys %start) {
    my $value = $start{$key};
    $finish{ $value } = $key;
}

Но это не может быть самым элегантным способом сделать это!

7
задан Darren 3 May 2012 в 14:07
поделиться