尝试从parsCit运行这个小的perl程序:
parsCit-client.pl e1.txt
[文件名]第1行的-CSD选项为时已晚
e1.txt在这里:http://dl.dropbox.com/u/10557283/parserProj/e1.txt
我从win7 cmd而不是Cygwin运行程序。
文件名是parsCit-client.pl-整个程序在这里:
#!/usr/bin/perl -CSD
#
# Simple SOAP client for the ParsCit web service.
#
# Isaac Councill, 07/24/07
#
use strict;
use encoding 'utf8';
use utf8;
use SOAP::Lite +trace=>'debug';
use MIME::Base64;
use FindBin;
my $textFile = $ARGV[0];
my $repositoryID = $ARGV[1];
if (!defined $textFile || !defined $repositoryID) {
print "Usage: $0 textFile repositoryID\n".
"Specify \"LOCAL\" as repository if using local file system.\n";
exit;
}
my $wsdl = "$FindBin::Bin/../wsdl/ParsCit.wsdl";
my $parsCitService = SOAP::Lite
->service("file:$wsdl")
->on_fault(
sub {
my($soap, $res) = @_;
die ref $res ? $res->faultstring :
$soap->transport->status;
});
my ($citations, $citeFile, $bodyFile) =
$parsCitService->extractCitations($textFile, $repositoryID);
#print "$citations\n";
#print "CITEFILE: $citeFile\n";
#print "BODYFILE: $bodyFile\n";
最佳答案
在perldoc perlrun中,关于-C
开关:
注意:从perl 5.10.1开始,如果在“#!”上使用-C选项,行,它
也必须在命令行上指定,因为标准
在执行perl时,已经建立了流
口译员。您还可以使用binmode()设置I / O的编码
流。
这可能是编译器“为时已晚”的意思。
换一种说法:
perl -CSD parsCit-client.pl