use strict; use warnings; use Data::Dumper; use MCE; use Time::HiRes 'sleep'; my %res = (); my $mce = MCE->new( max_workers => 5, posix_exit => 1, gather => \%res, ); my @input = 1..10; $mce->foreach(\@input, sub { # my ($mce, $chunk_ref, $chunk_id) = @_; # my $item = $chunk_ref->[0]; # or $_ my $item = $_; MCE->printf("Worker %s began item $item\n", MCE->wid); sleep 0.01; # simulate work MCE->gather($item => $item * 2); MCE->printf("Worker %s ended item $item\n", MCE->wid); }); $mce->shutdown; print Dumper(\%res);