Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl parallel::forkmanager…如何在退出时传递2个变量_Perl_Fork_Pipe - Fatal编程技术网

Perl parallel::forkmanager…如何在退出时传递2个变量

Perl parallel::forkmanager…如何在退出时传递2个变量,perl,fork,pipe,Perl,Fork,Pipe,我使用Parallel::ForkManager将一些变量从子级传递给父级。我可以通过$var…如何通过更多?(再次感谢霍布斯帮我走到这一步) 只能有一个:) 传递数组引用: $pm->finish(0, [ $var, $v ]); $pm->finish(0, { 'var' => $var, 'v' => $v }); 或哈希引用: $pm->finish(0, [ $var, $v ]); $pm->finish(0, { 'var' =>

我使用Parallel::ForkManager将一些变量从子级传递给父级。我可以通过$var…如何通过更多?(再次感谢霍布斯帮我走到这一步)

只能有一个:)

传递数组引用:

$pm->finish(0, [ $var, $v ]);
$pm->finish(0, { 'var' => $var, 'v' => $v });
或哈希引用:

$pm->finish(0, [ $var, $v ]);
$pm->finish(0, { 'var' => $var, 'v' => $v });
以及:


然后如何从run\u on\u finish子例程访问变量?@user522962,如果删除所有不需要的“\”,则可以使用
my$resp=$\u5]访问这些值;我的($var,$v)=@$resp$变量$v.
我的$resp=$\u5]$resp->{var}$resp->{v}…
。@ysth,您不应该创建对标量的引用。OP这样做是因为存储需要一个引用,但是
[]
{}
已经返回了一个引用@ikegami:我能看到引用的唯一原因是为了避免在序列化之前在子对象中创建额外的副本。不太可能是有意义的,但我还是留了下来。啊,我认为P::FM也支持非引用;移除它们。
$pm->run_on_finish(sub{
    my ($pid,$exit_code,$ident,$exit_signal,$core_dump,$data)=@_;
    print "pid: ".$pid."\n";
    print " first: ".$data->{'var'}."\n"; 
    print " second: ".$data->{'v'}."\n";   
});