autodie 2.06_01
authorDavid Mitchell <davem@iabyn.com>
Sat, 25 Jul 2009 10:38:30 +0000 (11:38 +0100)
committerDavid Mitchell <davem@iabyn.com>
Sat, 25 Jul 2009 10:55:37 +0000 (11:55 +0100)
(cherry picked from commit 7840a289bfa1b7a230055bb32f02d6873672b75b)

Porting/Maintainers.pl
lib/Fatal.pm
lib/autodie.pm
lib/autodie/exception.pm
lib/autodie/exception/system.pm
lib/autodie/hints.pm

index 7b2e5dc..d7ab22e 100755 (executable)
@@ -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/},
 
index e756957..18e71ed 100644 (file)
@@ -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 => \$@
         )
     };
 
index efb93d3..8e8e709 100644 (file)
@@ -8,7 +8,7 @@ our @ISA = qw(Fatal);
 our $VERSION;
 
 BEGIN {
-    $VERSION = '2.06';
+    $VERSION = '2.06_01';
 }
 
 use constant ERROR_WRONG_FATAL => q{
index ac578a1..8646099 100644 (file)
@@ -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<Text::Balanced> 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
index ebfa6ba..07cd1c9 100644 (file)
@@ -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__;
 
index f5ba5d8..e7be03a 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 use constant PERL58 => ( $] < 5.009 );
 
-our $VERSION = '2.06';
+our $VERSION = '2.06_01';
 
 =head1 NAME