in reply to SOLUTION
in thread Pipe, fork, exec and red-hot pokers.

It turns out that non-line buffering when stdout isn't a tty is standard UNIX practice. So it's not a perl specific wrinkle. Try 'man stdio' on your system (solaris has a particularly detailed page on this).

So other options might have included using setvbuf under perl (POSIX::setvbuf?) to manually set the stdout descriptor to line buffered. Of course, that would be useless if the first thing that the exec()ed perl program did was test stdout for tty-ishness and revert to non-line buffered ...

HTH!

--
Ash OS durbatulk, ash OS gimbatul,
Ash OS thrakatulk, agh burzum-ishi krimpatul!
Uzg-Microsoft-ishi amal fauthut burguuli.