Bhargav Gor さん、これはキーに複数の値を格納する一般的な方法です。
しかし、
これは匿名のハッシュ、つまりキーと値のペアであることに注意してください: {39,34,11,12} = ("39"=>34, "11"=>12)
これは無名配列です: [39,34,11,12]
1 を使用しました。これは、%ages ハッシュの値として別のハッシュを使用していることを意味します。
%ages =
" Michael Caine" => ("39"=>34,"11"=>12),
" Dirty Den" => ("34"=>56,"76"=>58),
" Angie" => ("27"=>56,"78"=>89)
キー「Michael Caine」のキー「39」の値を抽出したい場合
print %{$ages{" Michael Caine"}}->{"39"} #prints 34
本当にそのような構造が必要な場合は、これがすべての値を表示する方法です
foreach(keys %ages) {
$name = $_;
foreach(keys %{$ages{$name}}) {
print %{$ages{$name}}->{$_},",";
}
print "\n";
}
#output:
#>34,12,
#>56,58,
#>56,89,
この種の構造が必要だったとは思いません。おそらく、配列 (無名配列) を使用したかったのでしょう。
%ages = (
" Michael Caine" => [39,34,11,12],
" Dirty Den" => [34,56,76,58],
" Angie" => [27,56,78,89]
);
これで、次のような出力を簡単に表示できます。
foreach(keys %ages) {
$name = $_;
foreach( @{$ages{$name}} ) {
print $_,",";
}
print "\n";
}
#output:
#>39,34,11,12,
#>34,56,76,58,
#>27,56,78,89,
急いで申し訳ありません、タイプミスで申し訳ありません。そのようなストレージに対して何をすべきかを理解していただければ幸いです