先日『初めてのPerl 第5版』を少し読んだところ,スマートマッチ演算子についての解説があった。 perlsyn/Smart matching in detailをみると非常に複雑な印象を受けるが,実際にはそれほど複雑ではないようだ。むしろ,うまく使うと非常に便利である。 ただし,スマートマッチ演算子を使うときは,常に変数と定数を比較するようにしたほうがよい。 以下,使用例と問題例を示す。 #!perl -w use strict; use feature 'say'; my $foo; # $foo eq "foo" と同じ # ただし$fooがundefでも警告がでない say $foo ~~ "foo"; # $foo =~ /foo/ と同じ # ただし$fooがundefでも警告がでない say $foo ~~ qr/foo/; # 以下の挙動に注意! $foo = '00';