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;
我試圖重定向標準錯誤使用此語法到標準輸出,但它沒有工作:有沒有辦法讓這個Perl代碼捕獲stderr以及tcsh的stdout?
open UNIT_TESTER, qq(tcsh -c "gpath $dir/$tsttgt; bin/rununittests >& "|);
我也看到了有關perl的常見問題的討論,但是,這是相對於擊:http://www.perl.com/doc/FAQs/FAQ/oldfaq-html/Q5.15.html
這是Bourne/Korn/POSIX/Bash shell符號;除非它有一個嚴肅的改造,否則不是'tcsh'。 – 2010-06-08 07:08:12