如何使用正则表达式删除字符串中的$字符?

use*_*116 1 regex perl

我想使用正则表达式删除带有$,%,#这三个字符的字符串,但似乎无法删除$并且错误信息显示未定义的变量

我怎么解决这个问题?

这是我的代码

perl Remove.pl $ABC#60%


#!/usr/bin/perl

$Input = $ARGV[0];

$Input =~ s/\$|%|#//g;

print $Input;
Run Code Online (Sandbox Code Playgroud)

谢谢

per*_*eal 6

我认为你的问题是shell,而不是Perl代码.单引用脚本的参数:

perl remove.pl '$ABC#60%'
Run Code Online (Sandbox Code Playgroud)

shell可以将'$ ABC'解释为变量名,在这种情况下,脚本将不会收到任何参数.然后Perl会抱怨替换中未定义的变量.