メタ文字をエスケープする

back
$pattern = "hello world :)";

if (/$pattern/) {
  print "match\n";
}

これは、")" の数が合わないのでエラーになる。
正解は
$pattern = "hello world :\)";
だが、

$pattern = quotemeta "hello world :)";
で OK

/[A-Za-z_0-9]/ にマッチしない全ての文字がエスケープされる

back