Perlの用語は私を混乱させ、それは私の母国語ではないので、私に同行してください。適切な用語を使用しようとしますが、確かめるために例を挙げます。なぜperlはハッシュリファレンスのメンバーを配列に逆参照できないのですか?
私は変数$ fooにハッシュリファレンスを持っています。 $ foo - > {'bar'} - > {'baz'}は配列参照です。つまり、$ foo - > {'bar'} - > {'baz'} - > [0]をスカラに代入することで配列の最初のメンバーを得ることができます。
私はこれを行うとき:
foreach (@$foo->{'bar'}->{'baz'})
{
#some code that deals with $_
}
を私はエラー "未script.plライン41のARRAYのリファレンス"
を取得しかし、私はこれを行うとき、それは動作します:
$myarr = $foo->{'bar'}->{'baz'};
foreach (@$myarr)
{
#some code that deals with $_
}
私には理解できないことがありますか?最初の例がうまくいく方法がありますか?私は括弧の中に@を外側に置いてみましたが、うまくいきませんでした。ヘルプのお時間をありがとうございます。
パーサーは、あなたが意味することを理解している必要があります。最初に試した構文は、@ $ fooを逆参照したいものです。それは、どのように異なったトークンがそれらの周りのものに結びつくかについてです。私たちは_Intermediate Perl_についてもっと長い説明をしています。 :) –