in reply to Capturing STDERR with -

hmm, in the child is think you could do something similar to (untested code ahead):
open(STDERR,">&STDOUT");

This will re-open STDERR to be joined with STDOUT, i think.
$ perl -e 'do() || ! do() ;' Undefined subroutine &main::try