- 論壇徽章:
- 95
|
原帖由 oyd_admin 于 2009-1-10 20:47 發(fā)表 ![]()
#! /usr/bin/perl -w
my @a = (1,2,3.345);
my ($a1, $a2, $a3) = @a[0,1,2];
$a1 = 0.00001;
if(@a[0,1,2] == ($a1, $a2, $a3)) {
== 給其 operand 提供了 scalar context,而它的左邊 @a[0,1,2] 是 array @a 的 slice,是個(gè) list,同樣 ($a1, $a2, $a3) 也是個(gè) list,而在 scalar context 中,list 返回的是它的最后一個(gè)元素。
BTW,在 scalar context 中, ($a1, $a2, $a3) 也可看作是 comma operator 連接的幾個(gè) scalar value,此時(shí)它也返回最后一個(gè)表達(dá)式的值。
詳見 perldata 的 Slices 和 List value constructors, perlop 對(duì) == 的描述. |
|