私はこれを正確に何と呼ぶべきかは分かりませんが、2つの1ライナーで問題を再現できました。以下を含むファイル 'test.txtの' から始まってs ///で置換文字列をエスケープするPerlの文字列を円で囲む方法は?
:
foo
次のコマンドを実行した後(bashで):
perl -n -e "s/(\w)oo/$1ar/; print;" test.txt
出力は 'far
'
しかし、置換文字列を含む変数を導入すると、
perl -n -e '$bar = q($1ar); s/(\w)oo/$bar/; print;' test.txt
出力は '$1ar
'です。
2番目のプログラムでも 'far
'が出力され、この回答をGoogleableにしたとするにはどのようなキーワードが必要ですか?
また、2番目のものをs /// eに変更しようとしましたが効果がありません。
編集:これは本当に私が尋ねたかった質問ではありませんでした。これはhereです。
'$ bar =" \ $ 1.ar "'または '$ bar = q($ 1.ar)'で十分です。 '$ bar = q($ 1。" ar ")'は警告をクリーンにする。 – mob
ハハ、これは私のおもちゃのスクリプトでは機能しますが、完全なものではありません(1つの重要な面が取り除かれました)!私はこの質問に答えるのでこれを受け入れ、新しい質問をします。 –