About the only thing you can do is fool the program into thinking its connected to a tty rather than a pipe. That will cause most programs to use line buffering. Look into using a pseudo tty. IPC::Run can help there.
Re^2: real time open(HANDLE,"cmd |");
Replies are listed 'Best First'.