1
my %PlannedPerWeek = (
                    September => {
                            Week1 => [80, 23, 199, 45, 19, 36],
                            Week2 => [78, 21, 195, 43, 18, 36],
                            Week3 => [76, 19, 191, 41, 17, 36],
                            Week4 => [74, 17, 187, 39, 16, 36],
                    }
    );

perl prog に上記の配列のハッシュのハッシュがあります。上記のデータ構造から「199」という要素にアクセスするにはどうすればよいですか。

4

1 に答える 1

12

それはかなり簡単です。最初のものはハッシュなので、逆参照する必要はありません。データ構造内の次のすべての「コンテナ」は参照であるため、->演算子を使用してその構造を逆参照できます。中かっこ内{}のものはハッシュ (キー/値のペア) 参照であり、逆参照するには中かっこが必要ですが、角かっこ内のもの[]は配列参照であり、角かっこで逆参照する必要があります。

これで、実際には単に並べて 3 まで数えるだけです。

print $PlannedPerWeek{'September'}->{'Week1'}->[2];
                                               ^---- 3rd array ref element
                                    ^--------------- hashref key 'Week1'
                      ^----------------------------- hash key 'September'

矢印を省略してそのまま移動することもできます:

print $PlannedPerWeek{'September'}{'Week3'}[2];

perlreftutを読むべきです:

2 つの添字の間の矢印はオプションです。

于 2012-09-07T10:45:53.720 に答える