1

$、%、#の3文字の文字列を正規表現で削除したいのですが、$が削除できないようで、エラー情報に未定義の変数が表示されます

どうすればこの問題を解決できますか?

ここに私のコードがあります

perl Remove.pl $ABC#60%


#!/usr/bin/perl

$Input = $ARGV[0];

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

print $Input;

ありがとう

4

3 に答える 3

6

あなたの問題は、Perl コードではなく、シェルにあると思います。スクリプトへの引数を一重引用符で囲みます。

perl remove.pl '$ABC#60%'

シェルは「$ABC」を変数名として解釈できます。この場合、スクリプトは引数を受け取りません。Perl は、未定義の変数が代用されていると文句を言います。

于 2013-06-06T01:35:52.017 に答える
1
$Input =~ s/[\$%#]//g;

動作するはずです

于 2013-06-06T01:35:37.863 に答える