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

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

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

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

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

コメント:0

コメントフォーム
入力した情報を記憶する

トラックバック:0

この記事のトラックバック URL
https://blog.everqueue.com/chiba/2009/11/26/390/trackback/
トラックバックの送信元リスト
patternがemptyな場合には前回成功時のpatternが使われるというハマりポイント - へぼい日記 より

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

検索
フィード
メタ情報

ページの上部に戻る