In addition to what was said above about IPC, if you just want to print to STDOUT (and not actually have the processes talk to each other) you can use
Parallel::ForkManager to spawn the child process, and have it call 'run_on_finish' which executes on the child process before it exits. That allows you to send a return code to the parent before the child dies (good for keep track of failures, etc) but still can print to STDOUT.
I guess I'm not exactly sure what your goal is. Either way, using
Parallel::ForkManager does take a lot of complexity out of forking processes.