NAME

Error::Pure - Perl module for structured errors.

SYNOPSIS

use Error::Pure qw(err);
err 'This is a fatal error', 'name', 'value';

SUBROUTINES

err(@messages)
Process error with messages @messages.

VARIABLES

$LEVEL
Error level for Error::Pure.
Default value is 4.
$TYPE
Available are last names in Error::Pure::* modules.
Error::Pure::ErrorList means 'ErrorList'.
If does defined ENV variable 'ERROR_PURE_TYPE', system use it.
Default value is 'Die'.

Precedence:
1) $Error::Pure::TYPE
2) $ENV{'ERROR_PURE_TYPE'}
3) $Error::Pure::TYPE_DEFAULT = 'Die'

EXAMPLE1

# Pragmas.
use strict;
use warnings;

# Modules.
use Error::Pure qw(err);

# Set env error type.
$ENV{'ERROR_PURE_TYPE'} = 'Die';

# Error.
err '1';

# Output:
# 1 at example1.pl line 9.

EXAMPLE2

# Pragmas.
use strict;
use warnings;

# Modules.
use Error::Pure qw(err);

# Set env error type.
$ENV{'ERROR_PURE_TYPE'} = 'ErrorList';

# Error.
err '1';

# Output something like:
# #Error [path_to_script:12] 1

EXAMPLE3

# Pragmas.
use strict;
use warnings;

# Modules.
use Error::Pure qw(err);

# Set error type.
$Error::Pure::TYPE = 'AllError';

# Error.
err '1';

# Output something like:
# ERROR: 1
# main  err  path_to_script  12

EXAMPLE4

# Pragmas.
use strict;
use warnings;

# Modules.
use Error::Pure qw(err);

$SIG{__DIE__} = sub {
        my $err = shift;
        $err =~ s/ at .*\n//ms;
        $Error::Pure::LEVEL = 5;
        $Error::Pure::TYPE = 'ErrorList';
        err $err;
};

# Error.
die 'Error';

# Output.
# #Error [path_to_script.pl:17] Error

EXAMPLE5

# Pragmas.
use strict;
use warnings;

# Modules.
use English qw(-no_match_vars);
use Error::Pure qw(err);
use Error::Pure::Utils qw(err_msg_hr);

# Eval block.
eval {
       err 'Error',
              'Key1', 'Value1',
              'Key2', 'Value2';
};
if ($EVAL_ERROR) {
       print $EVAL_ERROR;
       my $err_msg_hr = err_msg_hr();
       foreach my $key (sort keys %{$err_msg_hr}) {
              print "$key: $err_msg_hr->{$key}\n";
       }
}

# Output.
# Error
# Key1: Value1
# Key2: Value2

DEPENDENCIES

English, Error::Pure::Utils, Exporter, Readonly.

SEE ALSO

Error::Pure, Error::Pure::AllError, Error::Pure::Always, Error::Pure::Die, Error::Pure::Error, Error::Pure::ErrorList, Error::Pure::HTTP::AllError, Error::Pure::HTTP::Error, Error::Pure::HTTP::ErrorList, Error::Pure::HTTP::JSON, Error::Pure::HTTP::Print, Error::Pure::JSON, Error::Pure::Output::JSON, Error::Pure::Output::Text, Error::Pure::Print.

ACKNOWLEDGMENTS

Jakub Špičak and his Masser (http://masser.sf.net).

REPOSITORY

https://github.com/tupinek/Error-Pure

AUTHOR

Michal Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

BSD license.

VERSION

0.16