1) %hash = (
1 => 'a',
4 => 'g',
7 => 'h'
);
逆関数を使用せずに指定されたハッシュを逆にするWAP?
あなたは本当にPerlを学ぶべきです-あなたがそれを自分で学ぶときそれは本当に楽しいです。
それは本当にとても簡単です:
my %rev;
foreach my $key (keys %hash) {
$rev{$hash{$key}} = $key;
}
TIMTOWTDI:
my %a = ( foo => 1, bar => 2 ); # original hash
my @a = %a; # copy to array
my @rev; # reversed list container
push @rev, pop @a while @a; # fill @rev from the back forward
my %rev = @rev; # assign reversed list to hash
my %by_letter;
@by_letter{ values(%by_num) } = keys(%by_num);
また
my %by_letter = map { $by_num{$_} => $_ } keys(%by_num);