in reply to A Quick fork theory question

Of course you can :-) and if you are familiar with how it would be done in C (which I have the feeling you do, from your question), it should be easy to translate the solution to Perl. The semantics of fork and waitpid in Perl are identical to C (this also means that at least for waitpid the behavior might change between different systems).

On the other hand, managing multiple processes is always tricky, and you have the risk of things running amok if you make a mistake, and it may not be immediately obvious how to properly manage multiple subprocesses. You may want to look at some existing solutions such as Parallel::ForkManager or ForkBlock.