I didn't see that as a selling point of open3.  I just wanted all three streams and the examples I found suggested this as a workable strategy.

http://perldoc.perl.org/perlfaq8.html#How-can-I-capture-STDERR-from-an-external-command?

(I don't know how to make the autolinking there include the question mark at the end...)

I don't know if we can still get bit by buffering, but that hasn't be a problem in my regression tests thus far.