sub go{ shift if UNIVERSAL::isa($_[0] => __PACKAGE__); FORK: { if ($child = fork) { }elsif (defined $child) { my $exec = "/usr/local/bin/monster -i$id $filePath$file &"; qx/$exec/; }elsif ($! == EAGAIN) { sleep 5; redo FORK; }else { die "Can't fork: $!\n"; } } return 0; #just to say 'done'. }