已经找到了另一个问题(打印或死亡:如何检查GPFS网络安装的文件是否可用)autodie
是一个非常有用的杂注,因为它进行了各种调用,这些调用可能是致命的,实际上是致命的。
像open
这样的东西——写open or die
是很常见的。
但autodie的问题是:
打印
autodie pragma不检查对打印的调用
你不能强迫它:
Cannot make the non-overridable builtin print fatal
那么,除了编写我自己的"print_or_die"sub之外,有没有一种方法可以复制类似于autodie
杂注的东西,也可以捕获print
返回代码?
(对于可能与此相关的场景,请参阅上面的链接。NFS软装载写入时出错,它们不会阻止)
在我看来,你自己有答案:
因为它[autodie]进行了各种调用致命的,实际上是致命的。
据我所知,print
基本上不应该是致命的,所以你提供的解决方案print_or_die
似乎也是解决方案。