Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between Perl modules autodie and Fatal?

Tags:

perl

autodie

The Perl modules autodie and Fatal seem to be doing similar things. What are the reasons for using one in preference to the other?

like image 790
justintime Avatar asked Apr 05 '10 11:04

justintime


People also ask

What is autodie in Perl?

autodie - Replace functions with ones that succeed or die with lexical scope - Perldoc Browser.


1 Answers

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.

like image 115
Grant McLean Avatar answered Sep 23 '22 22:09

Grant McLean