Perl术语让我困惑,它不是我的母语,所以请耐心等待。我会尝试使用正确的术语,但我会举一个例子来确保。为什么perl不允许我将哈希引用的成员解引用到数组中?
所以我在变量$ foo中有一个哈希引用。可以说$ foo - > {'bar'} - > {'baz'}是一个数组引用。这是我可以通过将$ foo - > {'bar'} - > {'baz'} - > [0]赋给标量来获得数组的第一个成员。
当我这样做:
foreach (@$foo->{'bar'}->{'baz'})
{
#some code that deals with $_
}
我得到的错误 “一点也不script.pl线数组引用41”
但我做到这一点时,它的工作原理:
$myarr = $foo->{'bar'}->{'baz'};
foreach (@$myarr)
{
#some code that deals with $_
}
有没有我不理解的东西?有什么办法可以让第一个例子工作?我试图在外面用@将圆括号中的表达式包起来,但那不起作用。提前感谢您的帮助。
解析器必须明白你的意思,并且首先尝试你想解除引用的$ foo的语法,这在你的情况下是不行的。这完全是关于不同的令牌如何绑定到他们周围的事物。我们在_Intermediate Perl_中有更长的解释。 :) –