in reply to Catching fork() with tied STDERR

One heavyweight alternative, almost not worth mentioning, is to have a grandparent process fork off the parent and just sit around and log all of the parent's STDERR output.

If you find a way of not patching this on a case-by-case basis, I'd be interested. I tend to go the other direction and log output from warn/die/croak/etc and the error codes I get back, since I find there is a lot of marginal stuff, outside of my control, that goes to stderr. If something turns up that I need to monitor from stderr, then I resort to trapping it on a case-by-case basis (i.e. by sending it to a temp file, forking a child and reading the stderr output from it, etc).