1

Windows で rouge プログラムを実行するために Strawberry Perl をインストールしました。しかし、プログラムを実行しようとすると、画像に表示されているエラー メッセージが表示されます。

#!/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 の実行が中止されました。

4

2 に答える 2

0

バックスラッシュは、Perl 文字列では特別な意味を持ちます。リテラルのバックスラッシュを取得するには、バックスラッシュを 2 倍にする必要があります (池上が指摘したように)。

ただし、バックスラッシュを使用する必要がないことにも言及する価値があります。Windows 上の Perl は、スラッシュもディレクトリ セパレータとして解釈します。引用符で囲まれた文字列では特別な意味がないため、2 倍にする必要はありません。

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

ps Perl コードにuse strictとを追加する習慣をつけてください。use warnings

于 2013-10-23T10:21:15.337 に答える