天天看點

标量,清單和上下文

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])(清單切片不允許被進行标量指派)

繼續閱讀