Есть ли способ заставить этот Perl-код захватывать как stderr, так и stdout из tcsh?
open UNIT_TESTER, qq(tcsh -c "gpath $dir/$tsttgt; bin/rununittests"|);
while(<UNIT_TESTER>){
reportError($ignore{testabort},$tsttgt,"test problem detected for $tsttgt:$_ ") if /core dumped/;
reportError($ignore{testabort},$tsttgt,"test problem detected for $tsttgt:$_ ") if /\[ FAILED \]/;
writelog($tsttgt,$_);
}
close UNIT_TESTER;
Я пытался перенаправить stderr в stdout, используя этот синтаксис, но он не работал:
open UNIT_TESTER, qq(tcsh -c "gpath $dir/$tsttgt; bin/rununittests >& "|);
Я также прочитал обсуждение FAQ по Perl, но это было связано с bash:http://www.perl.com/doc/FAQs/FAQ/oldfaq-html/Q5.15.html