如何使用autodie与非内置?

Rör*_*örd 7 perl autodie

autodie文档提示可以将它用于除默认情况下可以处理的内置函数之外的其他函数,但是没有明确的示例如何在其中执行此操作.

具体来说,我想将它用于Imager模块.许多功能和方法可能会失败,我更愿意,如果这并不意味着我的代码将遍布各种or die Imager|$image->errstr;短语.

当然,如果有另一种方式而不是使用autodie来实现这一点,我也会对此感兴趣.

cjm*_*cjm 4

autodie仅适用于函数,不适用于方法。这是因为它是词法作用域的,而方法查找不能是词法作用域的。 autodie::hints解释了如何告诉 autodie 有关用户定义的函数,但这对方法没有任何作用。

我不知道有什么方法可以使方法获得类似自动死亡的行为,除非模块内置了该行为(例如DBIRaiseError

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