Autodie uses a simple set of categories to group together similar built-ins. Requesting a category type (starting with a colon) will enable autodie for all built-ins beneath that category. For example, requesting :file will enable autodie for close, fcntl, fileno, open and sysopen.

Note that while the above category system is presently a strict hierarchy, this should not be assumed.

前述のカテゴリシステムは今のところ厳密な階層になっていますが、 これを仮定するべきではないことに注意してください。

A plain use autodie implies use autodie qw(:default). Note that system and exec are not enabled by default. system requires the optional IPC::System::Simple module to be installed, and enabling system or exec will invalidate their exotic forms. See "BUGS" below for more details.

allows the :default list from a particular version to be used. This provides the convenience of using the default methods, but the surety that no behavorial changes will occur if the autodie module is upgraded.

It is not considered an error for flock to return false if it fails to an EWOULDBLOCK (or equivalent) condition. This means one can still use the common convention of testing the return value of flock when called with the LOCK_NB option:

Applying autodie to system or exec causes the exotic forms system { $cmd } @args or exec { $cmd } @args to be considered a syntax error until the end of the lexical scope. If you really need to use the exotic form, you can call CORE::system or CORE::exec instead, or use no autodie qw(system exec) before calling the exotic form.

The :void option is supported in Fatal, but not autodie. To workaround this, autodie may be explicitly disabled until the end of the current block with no autodie. To disable autodie for only a single function (eg, open) use no autodie qw(open).

You've insisted on hints for user-subroutines, either by pre-pending a ! to the subroutine name itself, or earlier in the list of arguments to autodie. However the subroutine in question does not have any hints available.

When using autodie or Fatal with user subroutines, the declaration of those subroutines must appear before the first use of Fatal or autodie, or have been exported from a module. Attempting to use Fatal or autodie on other user subroutines will result in a compile-time error.

Under Perl 5.10 only, using a string eval when autodie is in effect can cause the autodie behaviour to leak into the surrounding scope. This can be worked around by using a no autodie at the end of the scope to explicitly remove autodie's effects, or by avoiding the use of string eval.