既存のArchive::Anyがパラレルに動作させるとおかしなことになっていたので、ちょいと作ってみました。使い方はこんな感じで。 use strict; use warnings; use Parallel::ForkManager; use Archive::Any::Lite; use File::Temp qw/tempdir/; my $pm = Parallel::ForkManager->new(5); for my $i (1..100) { $pm->start and next; my $dir = tempdir(DIR => './tmp', CLEANUP => 1); my $type = qw(lib)[int(rand(1))]; my $ext = qw(tar.gz tar.bz2 tgz zip)[int(rand(4))]; if (my $arch