在我的模塊,我有這樣的代碼:
croak("unable to parse file: $!");
然後,在我的測試中,我要檢查,我得到正確的錯誤消息時,我嘗試分析不存在的文件:
like(
exception { HTML::Tree->new_from_file("t/non_existent.html") },
qr!^unable to parse file: No such file !,
"opening missing file failed"
);
這工作正常,只要測試運行在英語區域設置。但是,如果您在德語區域中運行測試,錯誤消息將返回unable to parse file: Datei oder Verzeichnis nicht gefunden
,並且測試失敗。其他語言環境也有類似的問題。
我不敢相信這是第一次出現這種情況,但我無法在CPAN上找到解決此問題的任何模塊。人們是否從不測試錯誤消息的$!
部分?有沒有比改變測試更好的解決方案,只檢查qr!^unable to parse file: !
?
注意:這是RT#77823 in HTML-Tree。
只有號碼會有用得多,但我想我可以同時包含數字和字符串版本。另一個問題是ENOENT不能保證在每個系統上具有相同的數值。似乎應該有比這更好的解決方案。 – cjm