perl – 为什么smartmatch会根据操作数的顺序返回不同的值?

前端之家收集整理的这篇文章主要介绍了perl – 为什么smartmatch会根据操作数的顺序返回不同的值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数组,以下测试返回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在这些变化之前可能是正确的.

猜你在找的Perl相关文章