autodie文档暗示可以将其用于默认功能之外的其他功能,但是尚无明确的示例说明如何执行此功能。
具体来说,我想将其用于Imager模块。这样做的许多功能和方法都可能会失败,所以我宁愿这样做也不意味着我的代码到处都是or die Imager|$image->errstr;
短语。
当然,如果除了使用autodie之外还有另一种方法,我也会对此感兴趣。
最佳答案
autodie仅适用于函数,不适用于方法。这是因为它在词法范围内,方法查找不能在词法范围内。 autodie::hints解释了如何告诉autodie用户定义的函数,但这对方法无济于事。
我不知道有什么方法可以使方法具有类似于自动模具的行为,除非该模块具有内置的方法(例如DBI的RaiseError
)。
您可以有一个子例程来执行检查,但是它不会保存那么多代码,因为您仍然必须将正确的对象或类传递给它来调用errstr
。
关于perl - 如何将autodie与非buildins一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5337638/