Perl分叉管理器

Perl分叉管理器,perl,Perl,我启动Perl forkmanager时限制为4个进程,但它启动时更像8个进程。那么,我如何控制启动了多少个进程呢?(我希望先完成4个,然后再开始另一个这样的4个):我的代码如下所示 opendir($par_dir,$parent); while( my $sub_folders = readdir($par_dir)){ if ($sub_folders =~ /^..?$/){next;} my $path = $parent. '/'.$sub_folders; next

我启动Perl forkmanager时限制为4个进程,但它启动时更像8个进程。那么,我如何控制启动了多少个进程呢?(我希望先完成4个,然后再开始另一个这样的4个):我的代码如下所示

opendir($par_dir,$parent);

while( my $sub_folders = readdir($par_dir)){
  if ($sub_folders =~ /^..?$/){next;}
  my $path = $parent. '/'.$sub_folders;
  next unless ( -d $path);
  opendir ( $sub_dir,$path);

  while ( my $file =readdir($sub_dir)){

     next unless $file =~ /\.bai?$/i;

     my $destdir = $outdir;

     $pm-> start() and next;
     $pm->set_max_procs(MAX_CHILDREN);
     mkdir( $destdir, 0777 );
     system("do something with the $file);

  }
  $pm ->finish();
  closedir($sub_dir);

}
$pm->wait_all_children;
你在用什么?如果您提供一个指向您正在使用的软件包的链接(CPAN上的permalink很好),这会有所帮助。许多人不会遇到它,因为它只是CPAN上25000个包中的一个

请注意,Parallel::ForkManager的概要说明:

use Parallel::ForkManager;

$pm = Parallel::ForkManager->new($MAX_PROCESSES);
那么,您在创建
$pm
句柄时是否指定了4作为参数