From 7840a289bfa1b7a230055bb32f02d6873672b75b Mon Sep 17 00:00:00 2001 From: David Mitchell Date: Sat, 25 Jul 2009 11:38:30 +0100 Subject: [PATCH] autodie 2.06_01 --- Porting/Maintainers.pl | 2 +- lib/Fatal.pm | 4 +++- lib/autodie.pm | 2 +- lib/autodie/exception.pm | 15 ++++++++++++++- lib/autodie/exception/system.pm | 2 +- lib/autodie/hints.pm | 2 +- 6 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 68024b6..a65ead9 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -205,7 +205,7 @@ package Maintainers; 'autodie' => { 'MAINTAINER' => 'pjf', - 'DISTRIBUTION' => 'PJF/autodie-2.06.tar.gz', + 'DISTRIBUTION' => 'PJF/autodie-2.06_01.tar.gz', 'FILES' => q[lib/Fatal.pm lib/autodie.pm lib/autodie], 'EXCLUDED' => [ qr{^inc/Module/}, diff --git a/lib/Fatal.pm b/lib/Fatal.pm index e756957..18e71ed 100644 --- a/lib/Fatal.pm +++ b/lib/Fatal.pm @@ -39,7 +39,7 @@ use constant ERROR_58_HINTS => q{Non-subroutine %s hints for %s are not supporte use constant MIN_IPC_SYS_SIMPLE_VER => 0.12; # All the Fatal/autodie modules share the same version number. -our $VERSION = '2.06'; +our $VERSION = '2.06_01'; our $Debug ||= 0; @@ -101,6 +101,7 @@ my %TAGS = ( ':2.04' => [qw(:default)], ':2.05' => [qw(:default)], ':2.06' => [qw(:default)], + ':2.06_01' => [qw(:default)], ); $TAGS{':all'} = [ keys %TAGS ]; @@ -698,6 +699,7 @@ sub _one_invocation { function => q{$human_sub_name}, args => [ @argv ], pragma => q{$class}, errno => \$!, context => \$context, return => \$retval, + eval_error => \$@ ) }; diff --git a/lib/autodie.pm b/lib/autodie.pm index efb93d3..8e8e709 100644 --- a/lib/autodie.pm +++ b/lib/autodie.pm @@ -8,7 +8,7 @@ our @ISA = qw(Fatal); our $VERSION; BEGIN { - $VERSION = '2.06'; + $VERSION = '2.06_01'; } use constant ERROR_WRONG_FATAL => q{ diff --git a/lib/autodie/exception.pm b/lib/autodie/exception.pm index ac578a1..8646099 100644 --- a/lib/autodie/exception.pm +++ b/lib/autodie/exception.pm @@ -14,7 +14,7 @@ use overload use if ($] >= 5.010), overload => '~~' => "matches"; -our $VERSION = '2.06'; +our $VERSION = '2.06_01'; my $PACKAGE = __PACKAGE__; # Useful to have a scalar for hash keys. @@ -170,6 +170,18 @@ set on failure. sub errno { return $_[0]->{$PACKAGE}{errno}; } +=head3 eval_error + + my $old_eval_error = $E->eval_error; + +The contents of C<$@> immediately after autodie triggered an +exception. This may be useful when dealing with modules such +as L that set (but do not throw) C<$@> on error. + +=cut + +sub eval_error { return $_[0]->{$PACKAGE}{eval_error}; } + =head3 matches if ( $e->matches('open') ) { ... } @@ -698,6 +710,7 @@ sub _init { $this->{$PACKAGE}{context} = $args{context}; $this->{$PACKAGE}{return} = $args{return}; + $this->{$PACKAGE}{eval_error} = $args{eval_error}; $this->{$PACKAGE}{args} = $args{args} || []; $this->{$PACKAGE}{function}= $args{function} or diff --git a/lib/autodie/exception/system.pm b/lib/autodie/exception/system.pm index ebfa6ba..07cd1c9 100644 --- a/lib/autodie/exception/system.pm +++ b/lib/autodie/exception/system.pm @@ -5,7 +5,7 @@ use warnings; use base 'autodie::exception'; use Carp qw(croak); -our $VERSION = '2.06'; +our $VERSION = '2.06_01'; my $PACKAGE = __PACKAGE__; diff --git a/lib/autodie/hints.pm b/lib/autodie/hints.pm index f5ba5d8..e7be03a 100644 --- a/lib/autodie/hints.pm +++ b/lib/autodie/hints.pm @@ -5,7 +5,7 @@ use warnings; use constant PERL58 => ( $] < 5.009 ); -our $VERSION = '2.06'; +our $VERSION = '2.06_01'; =head1 NAME -- 2.7.4