keys関数 - ハッシュのすべてのキーを取得
keys関数を使用すると、ハッシュのすべてのキーを取得することができます。取得したキーの順序は不定です。
# すべてのキーを取得 my @keys = keys %hash;
ハッシュのリファレンスを引数として渡す場合は、デリファレンスする必要があります。
# すべてのキーを取得。ハッシュのリファレンスの場合。 my @keys = keys %$hash;
ハッシュのキーと値をすべて出力
keys関数を使って、ハッシュのすべてのキーとすべての値を出力してみます。
# キーの辞書順で並べ替えて出力 my $scores = {Ken => 1, Mike => 2, Rika => 3}; for my $person (sort keys %$scores) { print "$person : $scores->{$person}\n"; }
出力結果は以下のようになります。
Ken : 1 Mike : 2 Rika : 3
keys関数で得られるキーは順序が不定です。sort関数と組み合わせると安定した順序で出力することができます。
# キーの辞書順で並べ替えて出力 my $scores = {Ken => 1, Mike => 2, Rika => 3}; for my $person (sort keys %$scores) { print "$person : $scores->{$person}\n"; }
さらにreverse関数と組み合わせると、逆順で出力することができます。
# キーの辞書順で並べ替えて出力 my $scores = {Ken => 1, Mike => 2, Rika => 3}; for my $person (reverse sort keys %$scores) { print "$person : $scores->{$person}\n"; }