perl5.10中,标量變量(比如$a)、數組變量(比如@b)、哈希變量(比如%c)、清單直接量(比如(1,2,3))在标量/清單上下文中的輸出值及其與指派操作符的關系。
perl的表達式在不同的上下文中含義是不同的, 比如:
@arr = qw(a1, a2, a3);
@arr = reverse @arr;
$arr = reverse @arr;
@arr為a3, a2, a1.
$arr為1a2a3a.
perl也支援将清單上下文強制轉換為标量上下文, 采用scalar函數
print @arr; #結果為a1,a2,a3
pirnt scalar @arr;#結果為3, @arr的長度.
perl上下文中有一個特殊的變量$_, 為預設變量, 比如在foreach中, $_為清單的每個标量.
另外有幾個基本概念:
标量變量是标量
數組變量是數組
數組元素是标量(比如$b[1])
數組切片是清單(比如@b[1]、@b[1,2])
哈希變量是哈希
哈希變量的“鍵”與“值”都是标量
哈希切片是清單(比如%c{"er","yi"})
似乎沒有清單元素的概念或表達式。
清單直接量是清單
清單切片是清單(比如(1,2,3)[1])(清單切片不允許被進行标量指派)