我看到了这段代码并且无法理解它正在成功编译它是什么。我搜索了~~操作员但没有运气。
unless ($1 ~~ @tables) {
push @tables, $1;
}
答案 0 :(得分:6)
参考:http://perldoc.perl.org/perlop.html#Smartmatch-Operator
首先在Perl 5.10.1中可用(5.10.0版本表现不同),二进制~~在其参数之间做了“smartmatch”。
~~运算符“多态”比较它的操作数,确定如何根据它们的实际类型(数字,字符串,数组,哈希等)比较它们。就像它与它共享相同优先级的相等运算符一样,~~返回1表示true,“”表示false表示。它通常最好大声朗读为“in”,“inside of”或“包含在”中,因为左操作数通常在右操作数内查找。这使得智能匹配操作数的操作数顺序通常与常规匹配运算符的顺序相反。换句话说,“较小”的东西通常放在左操作数中,而较大的东西放在右边。
答案 1 :(得分:0)
这是一个智能匹配运营商。
如果您想了解Perl Operator,只需输入perldoc perlop
。