逃离变量内的美元符号

时间:2013-05-28 16:55:22

标签: perl

我有一行简单的Perl

s/$var/'string'/g

问题是$ var包含类似jkdlsf$lkjl的字符串。请注意中间的美元符号。似乎因为这个美元符号,替换不起作用。当它在变量中时如何逃避?

3 个答案:

答案 0 :(得分:10)

使用\Q引用:

s/\Q$var/'string'/g

答案 1 :(得分:5)

使用quotemeta\Q\E嵌入式正则表达式构造:

s/\Q$var\E/'string'/g;

# or

my $var = quotemeta 'jkdlsf$lkjl';
s/$var/'string'/g;

答案 2 :(得分:0)

您可以使用反斜杠转义它们:$var=~s/\$/\\\$/g