ハッシュのキーで並べ替えて表示するには、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,りんご