在我的模块中,我有这个代码:
- croak("unable to parse file: $!");
然后,在我的测试中,我想检查当我尝试解析不存在的文件时,我得到正确的错误消息:
只要测试运行在英语语言环境中,这样做很好.但是,如果您在德国语言环境中运行测试,错误消息将无法解析文件:测试失败.其他地区也有类似的问题.
我不敢相信这是第一次出现,但是我找不到解决这个问题的CPAN上的任何模块.人们根本从不测试$!部分错误讯息?有没有比更改测试更好的解决方案,只检查qr!^无法解析文件:!
注意:这是RT#77823 in HTML-Tree.
解决方法
你可以使用%!以象征性的方式测试错误
- unless (open my $fh,"<","/does/not/exist") {
- die "$0: unexpected errno " . ($! + 0)
- unless $!{ENOENT};
- }