1

我安装了 Strawberry Perl 以rouge在 Windows 中运行该程序。但是当我想运行我的程序时,我收到一条错误消息,您可以在图像上看到:

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 由于编译错误而中止。

http://i.stack.imgur.com/BP9Ef.png

4

2 回答 2

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 提示符下复制/粘贴命令似乎是一个不那么迂回的解决方案。

于 2013-10-22T12:37:30.603 回答
0

问题是当您将程序的内容输出到文件夹 sample-output 中的文件 output.out 时,sample-output 文件夹不存在。

命令提示符不会为您创建文件夹,只会创建文件。尝试首先创建一个名为“sample-output”的目录(在您的驱动器根目录中),以便该路径解析为 C:\sample-output 之类的内容,然后再次运行它。

如果出现同样的问题,请尝试使用绝对路径,例如 C:\sample-output\output.out。

于 2013-10-22T12:26:40.623 回答