ハッシュの配列を処理する

$array{'aaa'}[0]

のような変数定義については偉大な先人の方々が詳細を公開されておりますが、
私の探し方が悪いのか、

$array[0]{'aaa'}

の変数定義について解説されているサイトが少ないため、知識を共有します。


あと、すごく細かい事なんですが、

下の変数定義は「ハッシュの配列」でピンと来るんですが、

$array{'aaa'}[0]

下の変数定義は「配列のハッシュ」なんですかね。

$array[0]{'aaa'}

ただ、下の場合もハッシュの配列と解釈できるわけで・・・

$array{'aaa'}{'bbb'}


意味定義としての議論は尽きないと思いますが、まあ細かな事は置いておいて・・・
とりあえず、「ハッシュの配列」という名称はらくだ本の名称に従っています。

my @array = ();
$array[0]{'aaa'} = "000";
$array[0]{'bbb'} = "111";
$array[1]{'aaa'} = "222";
$array[3]{'aaa'} = "333";

print "全ての値を得る\n";
for(my $i = 0; $i <= $#array; $i++){
	foreach my $key (keys %{$array[$i]}){
		print $key, " = ", $array[$i]{$key}."\n";
	}
}

print "値を指定して得る\n";
for(my $i = 0; $i <= $#array; $i++){

	if(defined $array[$i]{'aaa'}){
		print "aaa = ", $array[$i]{'aaa'}."\n";
	}

	if(defined $array[$i]{'bbb'}){
		print "bbb = ", $array[$i]{'bbb'}."\n";
	}

}