二次元ハッシュを作成する - Perl

$a{'a'}->{'A1'} = 1 のような形のハッシュを作成、表示する。

サンプル

;#
;#二次元ハッシュ作成
;#

#-------------------------------------#
#            ハッシュ作成             #
#-------------------------------------#
# $a{'a'}->{'A1'} = 1 のような形になる
%a = (
    'a' => { 'A1'=>1, 'A2'=>2, 'A3'=>3 }, 
    'b' => { 'B1'=>1, 'B2'=>2, 'B3'=>3 }
);


#-------------------------------------#
#              表  示                 #
#-------------------------------------#
#-- 1次元のみ取出す --#
foreach my $key ( keys %a ){
    print "$key, $a{$key}\n";
}
print "\n";

#-- 全ての値を表示する --#
foreach my $key1 ( keys %a ){
    foreach my $key2 ( keys %{$a{$key1}} ){
        print "$key1, $key2, ". $a{$key1}->{$key2} ."\n";
    }
}

実行結果

a, HASH(0x274fe0)
b, HASH(0x2750e8)

a, A3, 3
a, A1, 1
a, A2, 2
b, B3, 3
b, B1, 1
b, B2, 2