获取perl程序中的编译错误

获取perl程序中的编译错误,perl,Perl,我安装了草莓Perl以在Windows中运行胭脂程序。但当我想运行我的程序时,我会收到一条错误消息,您可以在图像上看到: #!/usr/bin/perl use Cwd; $curdir=getcwd; $ROUGE="c:\ROUGE-1.5.5.pl"; chdir("sample-test"); $cmd="$ROUGE -e c:\data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a DUC2002- ROUGE.in.26.spl.xml >

我安装了草莓Perl以在Windows中运行胭脂程序。但当我想运行我的程序时,我会收到一条错误消息,您可以在图像上看到:

#!/usr/bin/perl

use Cwd;
$curdir=getcwd;
$ROUGE="c:\ROUGE-1.5.5.pl";
chdir("sample-test");
$cmd="$ROUGE -e c:\data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a DUC2002-    ROUGE.in.26.spl.xml > c:\sample-output\output.out";
print $cmd,"\n";
system($cmd);
chdir($curdir);
错误: C:\runROUGE-test1.pl第7行“$ROUGE”附近的\o{}上缺少大括号 由于编译错误,C:\runROUGE-test1.pl的执行被中止。

以生成字符串

c:\data
使用双引号字符串文字时,需要转义斜杠

"c:\\data"
你还有其他类似的问题


顺便说一下,您应该始终使用
使用strict;使用警告

以生成字符串

c:\data
使用双引号字符串文字时,需要转义斜杠

"c:\\data"
你还有其他类似的问题


顺便说一下,您应该始终使用
使用strict;使用警告

反斜杠在Perl字符串中具有特殊含义。要获得文字反斜杠,需要将反斜杠加倍(正如ikegami指出的)

但也值得一提的是,您不需要使用反斜杠。Windows上的Perl也将正斜杠解释为目录分隔符。这不需要加倍,因为它在带引号的字符串中没有特殊意义

$ROUGE = "c:/ROUGE-1.5.5.pl";

p、 请养成在Perl代码中添加
use strict
use warnings
的习惯。

反斜杠在Perl字符串中有特殊含义。要获得文字反斜杠,需要将反斜杠加倍(正如ikegami指出的)

但也值得一提的是,您不需要使用反斜杠。Windows上的Perl也将正斜杠解释为目录分隔符。这不需要加倍,因为它在带引号的字符串中没有特殊意义

$ROUGE = "c:/ROUGE-1.5.5.pl";

p、 请养成在Perl代码中添加
use strict
use warnings
的习惯。

图像不会显示。错误信息是什么?
使用strict;使用警告对$ROUGE='c:\ROUGE-1.5.5.pl'使用单引号;还有其他的。图像没有出现。错误信息是什么?
使用strict;使用警告对$ROUGE='c:\ROUGE-1.5.5.pl'使用单引号;等等。