我试图在$ comment中存储评论,这可以是任何内容。 说:
GetOptions(
'-C=s' => \$comment,
);
假设用户输入" Hello $$$$"。当我尝试打印$ comment或在其他地方使用它时,它正在使用当前运行过程的pid。
print "$comment\n";
输出结果为:
Hello 109236109236
有没有办法按原样打印内容? 例如:
Hello $$$$
答案 0 :(得分:6)
问题不在于Perl,如下面的代码段所示:
$foo = 'Hello$$$$';
print "$foo" # prints 'Hello$$$$'
问题是用户正在使用的shell。它将命令行参数内的$$
扩展为pid,然后将更改的参数提供给应用程序:
shell$ app.pl -C Hello$$$$ # calls app.pl with HelloPIDPID
如果您不想要这个,用户必须正确引用参数
shell$ app.pl -C 'Hello$$$$' # calls app.pl with 'Hello$$$$'
同样,在Perl中无法做到这一点,因为Perl只获取已经扩展的参数。