Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

キャプチャした$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ってずっと保持してくれると勘違いしていた。

まあさっさと別の変数に入れ直せっていう話ですね。