use Carp 'confess';
-our $VERSION = '0.75';
+our $VERSION = '0.78';
$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
sub _eval_closure {
# my ($self, $captures, $sub_body) = @_;
my $__captures = $_[1];
- eval join(
+
+ local $@;
+ my $code = join(
"\n",
- (map {
- /^([\@\%\$])/
- or die "capture key should start with \@, \% or \$: $_";
- q!my !.$_.q! = !.$1.q!{$__captures->{'!.$_.q!'}};!;
- } keys %$__captures),
+ (
+ map {
+ /^([\@\%\$])/
+ or die "capture key should start with \@, \% or \$: $_";
+ q[my ]
+ . $_ . q[ = ]
+ . $1
+ . q[{$__captures->{']
+ . $_
+ . q['}};];
+ } keys %$__captures
+ ),
$_[2]
);
+ my $sub = eval $code;
+
+ die "$@\n$code" if $@;
+
+ return $sub;
}
sub _add_line_directive {