我正在尝试运行使用Parallel::ForkManager的
的Perl脚本#!/usr/bin/perl
use Parallel::ForkManager;
use LWP::Simple;
my $pm= Parallel::ForkManager->new(10);
for my $link (@ARGV) {
$pm->start and next;
my ($fn)= $link =~ /^.*\/(.*?)$/;
if (!$fn) {
warn "Cannot determine filename from $fn\n";
}
else {
$0.=" ".$fn;
print "Getting $fn from $link\n";
my $rc=getstore($link,$fn);
print "$link downloaded. response code: $rc\n";
};
$pm->finish;
};
但我收到以下错误:
File::Path version 2.06 required--this is only version 1.08 at /usr/lib/perl5/5.8.8/File/Temp.pm line 14.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/File/Temp.pm line 14.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Parallel/ForkManager.pm line 441.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Parallel/ForkManager.pm line 441.
Compilation failed in require at parallel.pl line 3.
BEGIN failed--compilation aborted at parallel.pl line 3.
我该如何解决?
答案 0 :(得分:1)
升级您的File :: Path版本。
如错误所示,您运行的是版本1.08,但您运行的ForkManager版本取决于版本2.06。
另请注意,它实际上是File :: Temp,它具有File :: Path依赖关系,而P :: FM依赖于File :: Temp。
无论哪种方式,您都需要更新版本的File :: Path。
答案 1 :(得分:0)
Perl 5.8.8来自2006年。升级到支持的版本