我有一个数组,以下测试返回 true:
1 ~~ @a
然而,以下测试返回 false:
@a ~~ 1
我在《学习 Perl》中读到,智能匹配运算符两侧的值的放置并不重要,但显然在上面的代码中它确实如此。这是为什么?这两个语句检查的是不同的东西吗?
除了其他答案之外,Perl 5.10.1 更改列表 http://perldoc.perl.org/perl5101delta.html#Smart-match-changes有一节介绍了对~~
操作员:
智能匹配操作员~~
不再是可交换的。智能匹配的行为现在主要取决于其右侧参数的类型。
So 学习 Perl在这些更改之前可能是正确的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)