in reply to Parallel:ForkManager how to pass back a list

You can pass back whatever you want. I just started using this module recently, and needed to pass back a delete list and an insert list. So my run_on_finish sub starts off with this ..

$pfm->run_on_finish ( sub { my ($pid, $exit_code, $ident, $exit_signal, $core_dump, $data_structure_reference) = @_; if ( defined $data_structure_reference ) { my $delete_list = $data_structure_reference->{delete_list}; my $insert_list = $data_structure_reference->{insert_list};
That sets things up for when a kid finishes and puts something into the return parameter. Then, in the kid code, I do this:
if ( keys %delete_list || keys %insert_list ) { $pfm->finish ( 0, { delete_list => \%delete_list, insert_list => \%insert_list } ); } else { $pfm->finish; }
and it just works. Magic.

Alex / talexb / Toronto

Thanks PJ. We owe you so much. Groklaw -- RIP -- 2003 to 2013.