- 2009/11/26 木曜日 2:42:23
- perl
print "match1\n" if "baz" =~ m{}; "foo" =~ m{foo}; print "match2\n" if "baz" =~ m{};
の結果は
match1
である。なぜならperldoc perlrerefに書いてある通り、
If 'pattern' is an empty string, the last successfully matched regex is used.
であるから。
patternを動的に生成してたりする時に空になっちゃうケースなんかがあると思うので、その場合はマッチ処理自体を回避するようにしたほうがよいかと思われます。
最初バグかと思いました。
コメント:0
トラックバック:0
- この記事のトラックバック URL
- https://blog.everqueue.com/chiba/2009/11/26/390/trackback/
- トラックバックの送信元リスト
- patternがemptyな場合には前回成功時のpatternが使われるというハマりポイント - へぼい日記 より