X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FEval-WithLexicals.git;a=blobdiff_plain;f=lib%2FEval%2FWithLexicals.pm;h=8faa583930679742779cd1f3774b6693b806ba5d;hp=752de55660db68b4a9fd7e031e4507a4982130be;hb=a721c957f533de416b145a3f4d5ac532c9fa8cc0;hpb=8d732f3064bb88d682504f365ef1af62c6598b8c diff --git a/lib/Eval/WithLexicals.pm b/lib/Eval/WithLexicals.pm index 752de55..8faa583 100644 --- a/lib/Eval/WithLexicals.pm +++ b/lib/Eval/WithLexicals.pm @@ -4,7 +4,7 @@ use Moo; use Moo::Role (); use Sub::Quote; -our $VERSION = '1.001000'; # 1.1.0 +our $VERSION = '1.002000'; # 1.2.0 $VERSION = eval $VERSION; has lexicals => (is => 'rw', default => quote_sub q{ {} }); @@ -17,7 +17,7 @@ has lexicals => (is => 'rw', default => quote_sub q{ {} }); isa => sub { my ($val) = @_; die "Invalid context type $val - should be list, scalar or void" - unless $valid_contexts{$val}; + unless $valid_contexts{$val}; }, ); } @@ -30,6 +30,8 @@ has prelude => ( is => 'rw', default => quote_sub q{ 'use strictures 1;' } ); +has line => ( is => 'rw', default => 1 ); + sub with_plugins { my($class, @names) = @_; @@ -53,6 +55,8 @@ sub eval { local *Eval::WithLexicals::Cage::grab_captures; my $package = $self->in_package; + my $line = $self->line; + $self->line($line+1); my $setup_code = join '', $self->setup_code, # $_[2] being what is passed to _eval_do below Sub::Quote::capture_unroll('$_[2]', $self->lexicals, 2); @@ -63,7 +67,7 @@ sub eval { ${setup_code} sub Eval::WithLexicals::Cage::current_line { package ${package}; -#line 1 "(eval)" +#line $line "(eval)" ${to_eval} ;sub Eval::WithLexicals::Cage::pad_capture { } ${capture_code} @@ -137,6 +141,9 @@ sub _eval_do { } } +1; +__END__ + =head1 NAME Eval::WithLexicals - pure perl eval with persistent lexical variables @@ -259,6 +266,8 @@ Matt S. Trout David Leadbeater +haarg - Graham Knop (cpan:HAARG) + =head1 COPYRIGHT Copyright (c) 2010 the Eval::WithLexicals L and L @@ -270,5 +279,3 @@ This library is free software and may be distributed under the same terms as perl itself. =cut - -1;