外部ソースから大量のテキストを取得し、それを変数に保存してから、その変数を HTML のより大きなブロックの一部として表示しています。そのまま表示する必要があり、ドル記号が問題になっています。
セットアップは次のとおりです。
# get the incoming text
my $inputText = "This is a $-, as in $100. It is not a 0.";
print <<"OUTPUT";
before-regex: $inputText
OUTPUT
# this regex seems to have no effect
$inputText =~ s/\$/\$/g;
print <<"OUTPUT";
after-regex: $inputText
OUTPUT
実際には、これらのprint
ブロックは、変数が直接挿入された、はるかに大きな HTML のチャンクです。
s/\$/\$/g
最初は正規表現をエスケープ\$
して を検索し$
、2 番目\$
は挿入され、後で Perl をエスケープして$
. しかし、私はそれを機能させることができません。
ここに私が得ているものがあります:
before-regex: This is a 0, as in . It is not a 0.
after-regex: This is a 0, as in . It is not a 0.
そして、ここに私が見たいものがあります:
before-regex: This is a 0, as in . It is not a 0.
after-regex: This is a $-, as in $100. It is not a 0.
グーグルは私にこの質問をもたらします。回答で配列と for ループを使用しようとすると、効果がありません。
変数をそのまま正確に表示するブロック出力を取得するにはどうすればよいですか?