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, Error::Pure::PrintVar.

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

REPOSITORY
   <https://github.com/tupinek/Error-Pure>

AUTHOR
   Michal Špaček <mailto:[email protected]>

   <http://skim.cz>

LICENSE AND COPYRIGHT
    © Michal Špaček 2008-2014
    BSD 2-Clause License

VERSION
   0.20