我有一个数组,以下测试返回true:
1 ~~ @a
但是,以下测试返回false:
@a ~~ 1
我在Learning Perl中阅读了在smartmatch操作符的任一侧放置值并不重要,但显然在上述代码中.这是为什么?两个语句是否检查不同的事情?
解决方法
除了其他答案,the list of Perl 5.10.1 changes还有一个关于〜〜操作符更改的部分:
The smart match operator
~~
is no longer commutative. The behavIoUr of a smart match now depends primarily on the type of its right hand argument.
所以学习Perl在这些变化之前可能是正确的.