我安装了Strawberry Perl来运行Windows中的rouge
程序。但是,当我想运行我的程序时,我收到一条错误消息,您可以在图像上看到:
The system can't find the path specified.
我的代码正在尝试运行" ROUGE-1.5.5.pl"但我认为系统无法找到此文件。所以我想也许我没有正确地初始化路径?
我将代码更改为:
#!/usr/bin/perl
use Cwd;
$curdir=getcwd;
$ROUGE="..\ROUGE-1.5.5.pl";
chdir("sample-test");
$cmd="$ROUGE -e ..\data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a DUC2002-ROUGE.in.26.spl.xml > ..\sample-output\output.out";
print $cmd,"\n";
system($cmd);
chdir($curdir);
我收到此错误: 在C:\ runROUGE-test.pl第7行的\ o {}上缺少大括号,靠近" $ ROUGE"由于编译错误,C:\ runROUGE-test.pl的执行中止。
答案 0 :(得分:2)
根据屏幕截图,您试图在没有虚假反斜杠的情况下运行\ROUGE-1.5.5.pl
,如果您的..\ROUGE-1.5.5.pl
上没有父目录,则运行PATH
同样,您可能希望输出sample-output\output.out
,甚至只需output.out
,而不是\sample-output\output.out
,除非您为此专门设置文件夹C:\sample-output
。
反斜杠很重要;它是根目录的绝对路径(在Windows上为当前驱动器)。 ..\
是父文件夹的相对路径。
为什么要编写Perl脚本来运行Perl脚本?一个简单的批处理文件,或者直接在DOS提示符下复制/粘贴命令似乎都是一个不那么迂回的解决方案。
答案 1 :(得分:0)
问题是当您将程序的内容输出到文件夹sample-output中的文件output.out时,sample-output文件夹不存在。
命令提示符不会为您创建文件夹,只会创建文件。尝试创建一个名为“sample-output”的目录(在你的驱动器根目录中),这样路径就可以解析为C:\ sample-output,然后重新运行。
如果出现同样的问题,请尝试使用绝对路径,例如C:\ sample-output \ output.out。