in reply to the sub-process wont exit until the parent does
If you're not using something like Parallel::ForkManager then you should be using wait or waitpid to wait for your child processes. You should also investigate $SIG{'CHLD'} and determine what you want for that. If you're writing from one to the other, also consider $SIG{'PIPE'}.
If you haven't, read up on perlipc (or perldoc perlipc or man perlipc) to learn some other stuff. Also, I can definitely recommend APUE and Unix Network Programming, Volume 2: Interprocess Communication. Advanced Unix Programming by Rochkind, The Unix Programming Environment by Kernighan and Pike, and lots of other material exist that could help, too.
In Section
Seekers of Perl Wisdom