in reply to Wait hangs when pipe is full

The following rearrangement may help,

# ... the loop close( PARENT ); print "parent received: "; print '.' while <CHILD>; print "\n"; close( CHILD ); while( %pid ) { reap() }
That lets you draw down the buffer, making room for the other kids to print. It would also do no harm to try autoflushing the PARENT handle.

After Compline,
Zaxo