我不确定这究竟是什么,但我已经能够重现我的问题与两个单线。如何限制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