gpt4 book ai didi

perl - 如何测试包括 $! 在内的错误消息没有语言环境问题?

转载 作者:行者123 更新时间:2023-12-04 03:39:32 26 4
gpt4 key购买 nike

在我的模块中,我有以下代码:

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 .

最佳答案

您可以使用 %!象征性地测试错误,如

unless (open my $fh, "<", "/does/not/exist") {
die "$0: unexpected errno " . ($! + 0)
unless $!{ENOENT};
}

关于perl - 如何测试包括 $! 在内的错误消息没有语言环境问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11066533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com