in reply to forking messages

  1. Don't fork. Use something like POE instead.
  2. Use a mutex or a semaphore or a lock somehow to control access to STDOUT.
  3. Use pipe to create a new filehandle pair for each child.
I'd try pipe first.