2013-05-13 131 views

回答

6

参考:http://perldoc.perl.org/perlop.html#Smartmatch-Operator

首先在Perl 5.10.1用(5.10.0版本表现不同),二进制~~做它的参数之间的 “smartmatch”。

~~操作符比较其操作数“多态”,根据它们的实际类型(数字,字符串,数组,哈希等)确定如何比较它们。与共享相同优先级的相等运算符一样,〜 〜返回1为真,“”为假。在“in”,“inside of”或“contains in”中通常最好是朗读,因为左操作数通常在右操作数内部查找。这使操作数的顺序与smartmatch操作数的顺序通常与常规匹配操作符的顺序相反。换句话说,“较小”的东西通常放在左边的操作数中,而较大的一个放在右边。

+1

此代码检查@tables是否存在$ 1,并且要小心;因为这是一个相对非常昂贵的操作!只有'@tables'总是很小和/或这是一次性脚本,你应该写这样的代码。如果不是,请使用散列。 – MichielB 2013-05-13 14:18:57

0

这是一个smartmatch运算符。

如果您想了解Perl Operator,只需键入perldoc perlop