Home > perl > patternがemptyな場合には前回成功時のpatternが使われるというハマりポイント

patternがemptyな場合には前回成功時のpatternが使われるというハマりポイント

  • 2009-11-26 (木) 2:42
  • perl
  • hatena count
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を動的に生成してたりする時に空になっちゃうケースなんかがあると思うので、その場合はマッチ処理自体を回避するようにしたほうがよいかと思われます。

最初バグかと思いました。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.geminium.com/chiba_blog/2009/11/26/390/trackback/
Listed below are links to weblogs that reference
patternがemptyな場合には前回成功時のpatternが使われるというハマりポイント from へぼへぼCTO日記
add to hatena hatena.comment (3) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 3

Home > perl > patternがemptyな場合には前回成功時のpatternが使われるというハマりポイント

Search
Feeds
Meta

Return to page top