use MCE::Loop; MCE::Loop->init( chunk_size => 1, max_workers => 10, use_threads => 0 ); my %result; MCE::Util::get_ncpu %result = mce_loop { my ($mce,$chunk_ref,$chunk_id) = @_; my %ret; for my $item (@{ $chunk_ref }) { my $ret=tags_get($item); $ret{$item->[1]}=$ret->{$item->[1]}; #say $ret{$_->[1]}; } $mce->gather(%ret); } $fileprobe; MCE::Loop->finish;