The Perl modules autodie and Fatal seem to be doing similar things. What are the reasons for using one in preference to the other?
autodie - Replace functions with ones that succeed or die with lexical scope - Perldoc Browser.
The Fatal module was added to the Perl core in version 5.05 (1998). The Fatal module has some significant shortcomings and inconsistencies in its API which couldn't be fixed in a backwards compatible way (ie: fixing the API would break existing code which used Fatal).
The newer autodie module was written to provide a more consistent API and to allow the effect of the pragma to be lexically scoped rather than global (which can have unexpected side effects).
If you have a choice, you should definitely prefer autodie. It will be included as a core module in the upcoming 5.12 release of Perl.
The autodie module requires Perl 5.8. About the only reason you'd use Fatal is if you were stuck with a really old version of Perl (eg: 5.6), but 5.8 has been out since 2002 so hopefully that won't be the case for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With