在perl中做什么〜?

use*_*119 3 perl operators

我看到了这段代码,无法理解它在成功编译它是做什么的.我搜索了~~操作员但没有运气.

 unless ($1 ~~ @tables) {
 push @tables, $1;
 }
Run Code Online (Sandbox Code Playgroud)

Azi*_*ikh 6

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

首先在Perl 5.10.1中可用(5.10.0版本表现不同),二进制~~在其参数之间进行"smartmatch".

~~运算符"多态"比较它的操作数,确定如何根据它们的实际类型(数字,字符串,数组,哈希等)比较它们.就像它与它们共享相同优先级的相等运算符一样,~~返回1表示为真,""为假.它通常最好大声朗读为"in","inside of"或"包含在"中,因为左操作数通常在右操作数内查找.这使得智能匹配操作数的操作数顺序通常与常规匹配运算符的顺序相反.换句话说,"较小"的东西通常放在左操作数中,而较大的东西放在右边.