2010-06-21 16 views

回答

8

的$一個[1] [2]用於2頁維的表,實際上它是短爲$一[1] - > [2]

所以該第一分度需要返回一個引用不是數組的一部分。

語法錯誤來自Perl不知道如何解引用數組的事實。

+0

我想這意味着數組的切片不是列表。如果這是第二個例子會編譯。 – Aftershock 2010-06-21 13:20:30

+4

不,這意味着切片不是指向另一個陣列的指針。在第一個例子中,你首先用括號得出一個列表來評估一個切片,然後你拿一個切片。在第二個示例中,perl嘗試查找第一個索引所指向的數組,它查找數組而不是指針/引用並失敗。 – 2010-06-21 13:33:23

3
@a=(6,3,5,7); 

這將創建一個包含4個元素的數組。

(@a[0..3]) 

這將返回一個與@a相同的四個元素的列表。

(@a[0..3])[2..3]; 

這將從括號內的4元素列表中選擇最後兩個元素。

print(join(",", @b)); 

這將打印5,7,在@a最後兩個元素。

爲了好玩,請嘗試以下操作:

@a=(6,3,5,7); 
@b=(@a[0..3]); 
print("\@b=" . join(",",@b) . "\n"); 
@[email protected][2..3]; 
print("\@c=" . join(",",@c) . "\n"); 

請注意,我用Perl調試器來了解你的程序。你也可以這樣做,如果你不確定Perl到底是在做什麼的話。

相關問題