Without seeing some code it is really difficult to tell what went wrong with your attempts.
Check if your forked processes are only executing code which is
meant for them.
Best practice is to stuff all code for a forked process into a block (or sub) and do an
exit
just before the end of that block. Don't forget the SIGCHLD handler in the parent, otherwise
you will accumulate zombies (=processes that hang around and want to report their exit status
to the parent, but the parent just doesn't care).
I guess it was not "buggy aberrant behaviour" - things well done generally work ;-)
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}