根据Programming Perl,使用左边的“any”和右边的数字的智能匹配检查数字是否相等:
------------------------------------------------------------------------------
| 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
?