【问题标题】:Running Perl script on Linux with ForkManager使用 ForkManager 在 Linux 上运行 Perl 脚本
【发布时间】:2018-10-16 09:39:04
【问题描述】:

我正在尝试在我的 vps serer 上运行 Perl 脚本,它会获得 text-file 的 Ip 标题,其中 text-file 是 ips 列表。 但我收到此错误:

 Use of uninitialized value $args[0] in pattern match (m//) at /usr/local/share/perl5/Parallel/ForkManager.pm line 73.
Missing required arguments: max_proc at ./get line 12.

第 73 行是if ( $args[0] =~ /^\d+$/ ) { 第 12 行是my $forkmanager = new Parallel::ForkManager->new("200");

我的问题是如何解决这个错误? 请帮忙

【问题讨论】:

  • 您能否向我们展示一个能够重现该错误的简短、独立的程序?如果没有看到相关的源代码,很难猜测是什么原因造成的。

标签: linux perl centos vps


【解决方案1】:

我们无法知道$args[0] 包含(或不包含)什么。请提供完整的代码 sn-p 错误可重现的地方。

至于 ForkManager 错误:首先,尝试使用较新的 Moose 样式参数实例化 ForkManager 对象,即。 my $forkmanager = Parallel::ForkManager->new(max_procs => 200);

另请注意,不鼓励使用 new 关键字。来自perlobj

在文件句柄之外,不鼓励使用这种语法,因为它会混淆 Perl 解释器。详情见下文。

【讨论】:

  • 文件 forkmanager.pm 太长,也许这段代码可以帮助声明问题` if ( $args[0] =~ /^\d+$/ ) { $args{max_proc} = shift @args; $args{tempdir} = 转移 @args if @args; } 其他 { %args = @args; } 返回 \%args; }`
猜你喜欢
  • 2013-04-11
  • 2014-06-27
  • 2013-10-16
  • 2018-03-31
  • 1970-01-01
  • 2022-06-16
  • 2018-09-18
  • 1970-01-01
  • 2010-09-27
相关资源
最近更新 更多