アプリ版:「スタンプのみでお礼する」機能のリリースについて

perl5.6.0と5.6.1で挙動が違って困っちゃってます。

$a = "abc[test]de[test]fgh[test]ij";
@b = ($a =~ /(.*?)\[test\]/sg);
print join("|", @b);
exit;

LINUXでperl5.6.0だと
abc|de|fgh
LINUXでperl5.6.1だと
abc

どっちがバグでしょうか?

#取り敢えずプログラム自体はsplitで代用して動かしました

A 回答 (1件)

正規表現の/s修飾子を除くと5.6.1でも


abc|de|fgh
と出力しますね。
プログラミングPerl第3版によると、/sスイッチは、単一の行が入っている
という仮定で、改行文字にもマッチし、$*変数を無視するとのことですね。
$*変数が何者かを知りませんが、このあたりが怪しいところでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!