2005-03-06 (日)
*myとlocal
Perlのスクリプトでlocalにしてあった変数をmyで宣言したら,意図した動作をしなくなった.もちろん,その変数を呼び出した先の関数で参照しているようなことは無い.で,原因はe付きの正規表現を使った置換だった.置換の式の中は同じ関数内とみなされないのかな.ちょっとPerlの動作が怪しい気がするのですが….
my $v = "hoge";
s/^(\d+)/$v=$1;"";/e;
こんな感じで書くと変な動作をしてしまいます.myをlocalにすれば問題は起きません.