2013-05-13 124 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