No::Worries::Die - error handling without worries
use No::Worries::Die qw(dief handler); open($fh, "<", $path) or dief("cannot open(%s): %s", $path, $!); ... not reached in case of failure ... $ ./myprog myprog: cannot open(foo): No such file or directory $ NO_WORRIES=confess ./myprog myprog: cannot open(foo): No such file or directory at myprog line 16 main::test() called at ./myprog line 19
This module eases error handling by providing a convenient wrapper around die() with sprintf()-like API. dief() is to die() what printf() is to print() with, in addition, the trimming of leading and trailing spaces.
It also provides a handler for die() that prepends a prefix ($No::Worries::Die::Prefix) to all errors. It also uses the NO_WORRIES environment variable to find out if Carp's croak() or confess() should be used instead of die(). Finally, the wrapper can be told to also log errors to syslog (see $No::Worries::Die::Syslog).
NO_WORRIES
This handler can be installed simply by importing it:
use No::Worries::Die qw(dief handler);
Alternatively, it can be installed "manually":
use No::Worries::Die qw(dief); $SIG{__DIE__} = \&No::Worries::Die::handler;
This module provides the following functions (none of them being exported by default):
report an error described by the given MESSAGE
idem but with sprintf()-like API
$SIG{__DIE__} compatible error handler (this function cannot be imported)
This module uses the following global variables (none of them being exported):
prefix to prepend to all errors (default: the program name)
true if errors should also be sent to syslog using No::Worries::Syslog's syslog_error() (default: false)
This module uses the NO_WORRIES environment variable to control how errors should be reported. Supported values are:
croak
Carp's croak() will be used instead of die()
confess
Carp's confess() will be used instead of die()
Carp, No::Worries, No::Worries::Syslog, No::Worries::Warn.
Lionel Cons http://cern.ch/lionel.cons
Copyright (C) CERN 2012-2019
To install No::Worries, copy and paste the appropriate command in to your terminal.
cpanm
cpanm No::Worries
CPAN shell
perl -MCPAN -e shell install No::Worries
For more information on module installation, please visit the detailed CPAN module installation guide.