Or using MCE::Loop instead. One can have MCE::Loop gather orderly via MCE::relay.
use MCE::Simple (
include => [qw/ -strict -signatures -mce_loop /],
max_workers => 4, init_relay => '',
);
MCE::Simple->init(
on_finish => sub ( $pid, $exit, $ident, $signal, $error, @ret ) {
say "MCE job ** $ident ** completed; status $exit.";
print join('', @ret);
},
);
spawn "foo", sub {
my @results = mce_loop {
my $output = "From chunk_id: ".MCE->chunk_id."\n";
for my $i (@{ $_ }) {
$output .= "$i\n";
}
MCE::relay {
MCE->gather($output);
};
} 91..99;
};
# do something else
sync;
Thank you, PerlMonks. I was able to think out loud. The demonstrations work flawlessly.