逃离变量内的美元符号

evo*_*ion 4 perl

我有一个简单的Perl系列

s/$var/'string'/g
Run Code Online (Sandbox Code Playgroud)

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

cho*_*oba 10

使用\Q报价:

s/\Q$var/'string'/g
Run Code Online (Sandbox Code Playgroud)


Pla*_*ure 5

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

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

# or

my $var = quotemeta 'jkdlsf$lkjl';
s/$var/'string'/g;
Run Code Online (Sandbox Code Playgroud)