我正在爲某些Perl腳本構建迴歸系統(而不是單元測試)。如何測試Perl程序從我的測試套件中編譯?
該系統的核心部件是
`perl script.pl @params 1>stdoutfile 2>stderrfile`;
然而,在實際工作中的腳本過程中,他們有時不編譯(衝擊!)。但是perl本身會正確執行。但是,我不知道如何在stderr上檢測Perl是否無法編譯(因此寫入stderr),或者我的腳本在輸入時禁止(因此寫入stderr)。
如何檢測程序是否執行,但沒有詳盡地查找Perl錯誤消息並刷新stderr文件?
你應該總是使用$^X。幾乎每次使用它時,我都被一個硬編碼的'perl'咬了。問題是,子進程繼承你的PERL5LIB,這可能是錯誤的,在路徑中的第一個Perl。您最終會遇到奇怪的庫不匹配錯誤。 – 2009-06-24 17:03:34
heh。這很醜陋。雖然它並不總是很重要(Windows用戶不太可能安裝多個版本的Perl),但使用$^X永遠不會有害。我會相應地更新答案。 – 2009-06-24 17:46:09