mマッチ演算子の区切り文字について
mマッチ演算子の区切り文字は、通常『/』を使用します。
しかし、実は、任意の非英数字(空白文字は除く)でも大丈夫なのです。
またしかし、非英数字でもカッコ系は、開き/閉じのペアでないとなりません。
またまたしかし、以下の3つに関しては、注意が必要です。
- 『#』を使う場合は、mマッチ演算子との間にスペースを入れないこと(入れるとコメント認識される)。
- 『'』を使う場合は、パターン内で変数が展開されなくなる。
- 『?』を使う場合は、m??マッチ演算子になる(1回しかマッチしない)
use strict; use warnings; my $s = "abcxxxxabcyyyyabczzzz"; if ($s =~ m/abc/) { print "マッチした! \n"; } else { print "マッチしない!\n"; } if ($s =~ m@abc@) { print "マッチした! \n"; } else { print "マッチしない!\n"; } if ($s =~ m<abc>) { print "マッチした! \n"; } else { print "マッチしない!\n"; } my $a = 0; while($s =~ m/abc/g) { $a++; } print $a, "\n"; $a = 0; while($s =~ m?abc?) { $a++; } print $a, "\n";