キャプチャした$1はもう一回m||すると消える
久しぶりPerl書いたらハマったのでメモ。こんな仕様だったか。
my $str = "hoge123fuga"; # 123をキャプチャ $str =~ m|hoge(\d+)fuga|; warn $1; # 括弧使わないで正規表現マッチ $str =~ m|hoge|; warn $1; # さっきの$1は消える
123 at - line 5. Warning: something's wrong at - line 9.
括弧使わないでいれば$1ってずっと保持してくれると勘違いしていた。
まあさっさと別の変数に入れ直せっていう話ですね。