サンプル:ハッシュのハッシュでデータ表現する
ハッシュのハッシュを静的に作成します。ハッシュのネストの方法です。
%Hash_Of_Hash = (
"キー1" => {
"キー11" => "値11" ,
"キー12" => "値12" ,
・・・ ,
}
,
"キー2" => {
"キー21" => "値21" ,
"キー22" => "値22" ,
・・・ ,
}
,
"キー3" => {
"キー31" => "値31" ,
"キー32" => "値32" ,
・・・ ,
} ・・・
・・・
);
プログラム例では、大リーガーのイチロー、松井、松坂選手の身長・体重・年齢をハッシュの名前をキーにして、ハッシュ関数を辞書引きしています。
ハッシュ内のキーと値のペアは不定の順番で取り出される。並び方が気になるようであれば、ソートをかける必要があります。
注意すべき点は、ハッシュのキーに対応する値には、ハッシュリファレンスを値に取っている点で値にアクセスする際には、矢印演算子を用いています。
プログラム例
#!/usr/bin/perl
#!/usr/bin/perl
my %Hash_Of_Hash;
%Hash_Of_Hash = (
"イチロー" => {
"身長" => "175cm" ,
"体重" => "77kg" ,
"年齢" => "33歳" ,
}
,
"松井秀喜" => {
"身長" => "188cm" ,
"体重" => "95kg" ,
"年齢" => "32歳" ,
}
,
"松坂大輔" => {
"身長" => "182cm" ,
"体重" => "85kg" ,
"年齢" => "18歳" ,
}
);
foreach my $key1 (keys(%Hash_Of_Hash)) {
print $key1;
foreach my $key2 (keys( %{$Hash_Of_Hash{$key1}} )) {
print $Hash_Of_Hash{$key1}->{$key2} , "\n";
}
print "\n";
}
実行結果
[it-engineer@home1 perl]# perl 20070523-3.pl
イチロー175cm
77kg
33歳
松井秀喜188cm
95kg
32歳
松坂大輔182cm
85kg
18歳
[it-engineer@home1 perl]#

