我正在尝试运行一个使用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.
我该如何解决它们?
发布于 2014-02-07 18:39:23
升级File::Path的版本。
如错误所示,您正在运行版本1.08,但是您正在运行的ForkManager版本依赖于版本2.06。
还要注意,它看起来实际上是File::Temp,它具有File::Path依赖项,而P::FM对File::Temp具有依赖项。
无论哪种方式,您都需要更新版本的File::Path。
发布于 2014-02-07 16:55:00
Perl 5.8.8来自2006年。升级到支持的版本
https://stackoverflow.com/questions/21633355
复制相似问题