1

Programming Perl (本) で、エントリが次のように配列を保持する辞書を作成できることを読みました。

$wife{"Jacob"} = ["Leah", "Rachel", "Bilhah", "Zilpah"];

リストの内容を取得したいとし$wife{"Jacob"}ます。どうやってやるの?

私が試してみると:

$key = "Jacob";
say $wife{$key};

私は得る:

ARRAY (0x56d5df8)

これは、実際のリストではなく、参照を取得していると信じさせます。

4

2 に答える 2

4

見る

複雑なデータ構造と参照の使用についての情報。

基本的に、ハッシュは値としてスカラーのみを持つことができますが、参照はスカラーです。したがって、ハッシュ内にarrayrefを保存し、それを配列に逆参照する必要があります。

参照を逆参照するには、@{...}構文を使用します。

say @{$wife{Jacob}};

また

say "@{$wife{Jacob}}"; # print elements with spaces in between
于 2012-09-16T21:49:54.100 に答える
1

この頃には $、 がスカラーを@参照し、配列を参照していることを知っているはずです。

そのキーの値は配列であるとあなた自身が言ったので、あなたはすべきです

say @wife{$key};

それ以外の

say $wife{$key};
于 2012-09-17T11:12:57.547 に答える