use Proc::Background; my @params = ... my @procs; for my $p (@params) { my $cmd = "some-command $p > /tmp/some-file.$p"; push @procs, Proc::Background->new($cmd); } $_->wait for @procs; # ... continue work