为什么 perl 的 autodie 功能不包括"print"?(有解决方法吗?



已经找到了另一个问题(打印或死亡:如何检查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似乎也是解决方案。

最新更新