據編程的Perl,使用smartmatch以「任何」的左邊和右邊的檢查數值等於一個數字:
------------------------------------------------------------------------------
| Left | Right | Description | Like (But Evaluated in Boolean Context) |
------------------------------------------------------------------------------
| Any | Num | Numeric equality | Any == Num |
因此,我期待下面的輸出1
:
my @arr = ('aaa');
my $num = 1;
say @arr ~~ $num;
但它實際上輸出空字符串。
我認爲@arr
將被轉換爲標量1
,因爲它有1個元素,所以say @arr ~~ $num
將相當於say @arr == $num
。
爲什麼@arr ~~ $num
與@arr == $num
不同?
感謝這個答案,我發現了「The」這個音符「並不總是一個精確的翻譯」。所以它不應該被視爲完全平等的選擇 – user907860 2012-07-28 15:21:09