ハッシュのキーでソート(並べ替え)する
ハッシュのキーで並べ替えて表示するには、sort関数でkeysの値を並べ替えればよい。
以下はハッシュのキーを文字列としてソートする方法になる。
;# ;#ハッシュをソートして表示(文字としてソート) ;# #------------------------------# #初期化する #------------------------------# %hash = ( 'orange' => 'オレンジ' , 'apple' => 'りんご' , 'muscat' => 'マスカット' , 'banana' => 'バナナ' ); #------------------------------# #並べ替えて表示 #------------------------------# foreach my $name ( sort keys %hash ){ print "$name,$hash{$name}\n"; }
○実行結果
apple,りんご banana,バナナ muscat,マスカット orange,オレンジ
もし、数字としてハッシュのキーをソートしたいなら次のように書く。
;# ;#ハッシュをソートして表示(数値としてソート) ;# #------------------------------# #初期化する #------------------------------# %hash = ( '3' => 'オレンジ' , '4' => 'りんご' , '1' => 'マスカット' , '2' => 'バナナ' ); #------------------------------# #並べ替えて表示 #------------------------------# foreach my $name ( sort { $a <=> $b } keys %hash ){ print "$name,$hash{$name}\n"; }
○実行結果
1,マスカット 2,バナナ 3,オレンジ 4,りんご
