in reply to Re^2: bidirectional pipe freezing
in thread bidirectional pipe freezing

There is IPC::Run, but my approach to this has always been to do a (blocking) read from the pipe in a separate thread and stuff the lines into a Thread::Queue, from where the front end code (or whatever else) reads.