autodie文档暗示可以将其用于默认功能之外的其他功能,但是尚无明确的示例说明如何执行此功能。

具体来说,我想将其用于Imager模块。这样做的许多功能和方法都可能会失败,所以我宁愿这样做也不意味着我的代码到处都是or die Imager|$image->errstr;短语。

当然,如果除了使用autodie之外还有另一种方法,我也会对此感兴趣。

最佳答案

autodie仅适用于函数,不适用于方法。这是因为它在词法范围内,方法查找不能在词法范围内。 autodie::hints解释了如何告诉autodie用户定义的函数,但这对方法无济于事。

我不知道有什么方法可以使方法具有类似于自动模具的行为,除非该模块具有内置的方法(例如DBIRaiseError)。

您可以有一个子例程来执行检查,但是它不会保存那么多代码,因为您仍然必须将正确的对象或类传递给它来调用errstr

关于perl - 如何将autodie与非buildins一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5337638/

10-10 03:49