私が解決できた私のperlスクリプトの障害に遭遇しましたが、なぜそれがそのように機能するのかは分かりません働く私はインターネットを精練してきましたが、適切な説明は見つかりませんでした。x参照数xデータ構造の数x
私は配列のハッシュへの参照を返すサブルーチンを持っています。ハッシュキーは単純な文字列であり、値は配列への参照です。私は、キー&値をプリントアウトすることができていますが
は、私は本当にライン3の背後にある構文を理解していない、この
for my $job_name (keys %$build_numbers) {
print "$job_name => ";
my @array = @{@$build_numbers{$job_name}}; # line 3
for my $item (@array) {
print "$item \n";
}
}
のように、各キーに関連付けられた配列の要素をプリントアウトします。値人口の配列への参照であるハッシュへ
リファレンスを次のよう
我々のデータ構造です。
配列の要素を抽出するには、以下を行う必要があります。 - キーにアクセスできるようにハッシュリファレンスを逆参照します。 - 要素を抽出するキーに関連付けられた配列参照を逆参照します。
最後の質問のビーイング:
- 配列などのハッシュのperlのハッシュを扱います。それぞれのデータ構造「ツリー」の「最下位」の要素を抽出するために、各レベルを逆参照して元のデータ構造に到達しなければなりません。
誰かが明確にすることでうまくいけばいいと思います。
実際の質問はここではわかりませんが、回答は[perldsc](http://perldoc.perl.org/perldsc.html) –
を参照してください。ハッシュリファレンスからの引用を外してください。 '$ build_numbers-> {$ job_name} ''であれば、その値は配列参照、 '@ {$ build_numbers - > {$ job_name}}'で参照解除してください。優先ルールのために '@ {...}'にcurliesが必要です。あなたのコードの2番目の '@'は余分です。それが基本ですが、これを扱う方法はたくさんあります。はい、あなたは下に行くためにレベルを通過する必要があります、他にどのように?関連するドキュメントを読む必要があります。その後の人生ははるかに良いでしょう。 – zdim
これは何らかの種類の解析されたコンテンツですか? XMLやJSONなどを解析するときは、通常、複雑なデータ構造になります。 – Sobrique