Perl模块autodie和Fatal有什么区别?

jus*_*ime 6 perl autodie

Perl模块 autodieFatal似乎做了类似的事情.使用一个优先于另一个的原因是什么?

Gra*_*ean 11

Fatal模块在版本5.05(1998)中被添加到Perl核心.Fatal模块的API存在一些明显的缺点和不一致,无法以向后兼容的方式修复(即:修复API会破坏使用Fatal的现有代码).

编写较新的autodie模块是为了提供更一致的API,并允许pragma的作用是词法范围而不是全局(可能会产生意外的副作用).

如果你有选择,你绝对应该选择autodie.它将作为核心模块包含在即将发布的Perl 5.12版本中.

autodie模块需要Perl 5.8.关于你使用Fatal的唯一原因是,如果你遇到了一个非常旧的Perl版本(例如:5.6),但自2002年以来5.8已经出局,所以希望你不会这样.


Leo*_*ans 7

引用致命文档

Fatal已经被新的autodie pragma淘汰了.请使用autodie而不是Fatal.autodie支持词法作用域,抛出真正的异常对象,并提供更好的错误消息.