use v5.32; use MCE; use MCE::Shared; use Data::Dumper; our @results; our $shared_ctr = MCE::Shared->scalar(0); my $mce = MCE->new( gather => \@results, chunk_size => 1, max_workers => 8, posix_exit => 1, user_func => sub { my ($mce, $chunk_ref, $chunk_id) = @_; my $ctr = $shared_ctr->getincr; unless ($ctr % 1000) {MCE->say($ctr);} #do stuff my $ans = $chunk_ref->[0]; # or $_ MCE->gather($ans); } )->spawn; our @duplicated = (10..20); $mce->process({ input_data => \@duplicated }); $mce->shutdown; # stop the shared-manager process MCE::Shared->stop; say scalar(@results); # print Dumper(\@results);