use v5.32; use MCE::Child; use Data::Dumper; our @results; MCE::Child->init( max_workers => 8, posix_exit => 1, on_finish => sub { my ($pid, $exit_code, $ident, $exit_signal, $core_dump, $data_ref) = @_; push @results, ${$data_ref}; } ); our @duplicated = (10..20); our $ctr = 0; say "processing duplicates..."; foreach my $pid (@duplicated) { unless ($ctr % 1000) {say $ctr;} $ctr++; MCE::Child->create(sub { #do stuff my $ans = $pid; return \$ans; }); } MCE::Child->wait_all; say scalar(@results); # print Dumper(\@results);