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_中有更長的解釋。 :) –