3

言うまでもなくPerlと正規表現の初心者ですが、perl正規表現で配列内の要素を使用しようとしています。ここにスニペットがあります

my $temp  = $line =~ s/somestring[^\n]*$_// for @myarray;

$_ の代わりに文字列をハードコーディングすると、正常に動作します。また、 $_ は文字列を単独で細かく出力します。それで、私は何を間違っていますか?for ループを使用する拡張バージョンでさえ、一致は得られません。

PS配列には要素が1つしかないことを明確にするために、それが行と一致することを知っています。

4

1 に答える 1

4

quotemeta関数を使用してエスケープする必要があるため、配列の内容に特殊文字が含まれていないことを願っていますが、括弧を追加しても機能するはずです。

my $temp;
($temp  = $line) =~ s/somestring[^\n]*$_// for @myarray;
于 2012-07-13T17:40:54.947 に答える