我想我在Params::Validate中遇到过一个错误,但我不确定我是否正确识别了有问题的代码段。上述代码未能通过链上的异常(使用Try::Tiny),所以我开始调试并发现在try
块中使用的类具有析构函数。这个析构函数调用使用Params::Validate
和调查Validate.pm
source的对象方法我看到eval
没有[email protected]
本地化,即全局[email protected]
被覆盖。
现在我看到两个选项:
Params::Validate
应始终本地化[email protected]
,因此它应该报告的错误。- 该错误发生在相关类中,因为它不应该在析构函数中使用
Params::Validate
。Params::Validate
可以保持现在的状态。
这是哪一个?我应该如何处理这种情况?
PS:我认为CPAN模块应该坚如磐石,既不会破坏自身也不会破坏环境,因此也就成为问题的标题。
确切地说,它用在我们的框架代码中,我的部门不是框架的负责人。所以,是的,缺少测试,但不是我本人或者发现问题的同事 - 他一直在测试他的代码,并想知道为什么他的例外无法传播。 – 2010-06-01 19:53:24