我不確定這究竟是什麼,但我已經能夠重現我的問題與兩個單線。如何限制Perl的字符串在s ///中轉義替換字符串?
從文件 '的test.txt' 啓動含有下列:
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
'。
我需要更改哪些內容以便第二個程序還會輸出'far
'以及我需要學習哪些關鍵字才能使此答案成爲Googleable?
另外,我試着改變第二個到s /// e,沒有任何效果。
編輯:這不是真的我想問的問題,這是here。
`$ bar =「\ $ 1.ar」`或`$ bar = q($ 1.ar)`就足夠了。 `$ bar = q($ 1。「ar」)`警告是乾淨的。 – mob 2011-02-02 23:16:37
哈哈,這對我的玩具劇本起作用,但不適用於完整版本(一個關鍵方面已被刪除)!我會接受這個問題,因爲它回答了問題,然後提出一個新問題。 – 2011-02-02 23:30:30