in reply to How to fork one and only one child process from a loop ?

use Proc::Queue size => 1, ignore_childs => 1, qw(running_now); someLoop { ... ... do stuff ... ... if(running_now < 1) { my $pid = fork; defined $pid or die ... unless ($pid) { ... do stuff in child ... exit(0); } } ... ... carry on doing stuff while child runs ... ... }