in reply to Calling several System commands parallely
use Proc::Queue size => 5, qw(system_back all_exit_ok); my @pids; push @pids, system_back $_ for @cmd; all_exit_ok(@pids) or die "some command failed"; [download]