in reply to IPC::Open3 buffering and autoflush

Why is $fh_out->autoflush(1) not working?

Because the writing side isn't your filehandle.

Is there a way to prevent buffering without changing the called program?

If you set up a pseudo-tty, perhaps the OS would use line buffering on STDOUT instead. Use IO::Pty instead of IO::Handle. (Warning; I did not test this myself.)