我想我在
Params::Validate遇到了一个错误,但我不知道我是否正确地识别了有问题的代码片段.该代码无法通过链接传递异常(使用
Try::Tiny),所以我开始调试,发现try块中使用的类有一个析构函数.这个析构函数调用使用Params :: Validate并查找Validate.pm
source的对象方法,我看到一个没有$@本地化的eval,即全局$@被覆盖.
现在我看到两个选项:
> Params :: Validate应该总是本地化$@,因此它是一个应该报告的错误.
>该错误在有问题的类中,因为它不应该在析构函数中使用Params :: Validate. Params ::验证可以保持现在.
哪一个?我应该怎么处理这种情况?
PS:我认为CPAN模块应该是坚实的,既不破坏自己也不打破环境,所以问题标题.
解决方法
有关如何提交错误报告,请参阅
http://search.cpan.org/perldoc?Params::Validate#SUPPORT.你花了很多精力发现问题的原因和解决方案.如果别人不知道你已经学到了什么,不得不回溯你的步骤,这将是一个耻辱.
I think that CPAN modules should be rock-solid and neither break themselves nor their environment
在一个完美的世界里,软件总是会做它所声称的,而且没有任何无证的副作用. CPAN是一个非常开放的系统,所以几乎任何人都可以上传几乎任何东西.我认为这不仅仅是一个bug,而是入门的一个很低的障碍,使得Perl模块的开发变得更加容易,并鼓励开发一个更有用和更有用的库.
Params :: Validate于九年前发布,自那时起已经更新了大约94次.如果您查看CHANGES文件,您将看到作者已经非常认真地将模块保持最新,并且偶尔出现问题并添加新功能.听到用户发现问题可能不会让他们感到震惊,也不要太震惊,发现一些图书馆只是优秀而不完美.