Perl脚本在PerlV5.20中给出了语法错误,但在v5.10中没有

Perl脚本在PerlV5.20中给出了语法错误,但在v5.10中没有,perl,Perl,我有一个程序,使用Perl版本5.10.1已经运行了相当长的一段时间 我现在需要在版本5.20.2上运行它,因为它是可用的,并且我需要一个64位的环境 问题是,在PerlV5.20下,这一行失败了 process_command_line("dummy"); 由于这个错误 line 16: syntax error near unexpected token `"dummy"' line 16: `process_command_line("dummy");' 为什么会出现此错误?您

我有一个程序,使用Perl版本5.10.1已经运行了相当长的一段时间

我现在需要在版本5.20.2上运行它,因为它是可用的,并且我需要一个64位的环境

问题是,在PerlV5.20下,这一行失败了

process_command_line("dummy");
由于这个错误

line 16: syntax error near unexpected token `"dummy"'  
line 16: `process_command_line("dummy");'  

为什么会出现此错误?

您正在使用
sh
(或类似)而不是
Perl
执行Perl脚本。使用
perl
执行perl脚本

$ cat a.pl
process_command_line("dummy");

$ sh a.pl
a.pl: line 1: syntax error near unexpected token `"dummy"'
a.pl: line 1: `process_command_line("dummy");'

$ perl a.pl
Undefined subroutine &main::process_command_line called at a.pl line 1.

您所展示的不是语法错误,周围的代码是什么?您的代码在任何版本的Perl中都不会生成语法错误。此外,错误“意外标记附近的语法错误”不是Perl错误消息。因此,我希望您没有告诉我们这些代码是如何运行的。您确定要调用
perl
解释器吗?这看起来像是针对
bash
解释器运行它。
perl-c-e'process\u命令行(“dummy”)
产生
语法OK
。感谢您的评论。这就是我得到的。正如我所说,我不太理解perl。问题可能是因为我正在运行另一个脚本。我会设法弄明白的