获取perl程序中的编译错误
我安装了草莓Perl以在Windows中运行胭脂程序。但当我想运行我的程序时,我会收到一条错误消息,您可以在图像上看到:获取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 >
#!/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'使用单引号;等等。