I didn't check if this snippet is in the links above....lazy Sunday...but it's worth mentioning.
#!/usr/bin/perl
use Proc::Queue size=>5, ':all';
my @script_names= qw(s1 s2 s3 s4 s5 somescript);
my @pids;
for my $s (@script_names) {
push @pids, system_back($s)
}
%results=waitpids(@pids);