X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FPackages.pm;h=4a56d87cb4a215447d70c87295c8c513c4f4cb00;hb=2c1cf68730092df9d48a6115d03be122b0c3ba55;hp=e0b797b6d1f42a2c9dca2f71198078b06b846a6e;hpb=9cfc1536ce713631d93a1d4d11259d1103fb9cae;p=p5sagit%2FDevel-REPL.git diff --git a/lib/Devel/REPL/Plugin/Packages.pm b/lib/Devel/REPL/Plugin/Packages.pm index e0b797b..4a56d87 100644 --- a/lib/Devel/REPL/Plugin/Packages.pm +++ b/lib/Devel/REPL/Plugin/Packages.pm @@ -1,9 +1,9 @@ package Devel::REPL::Plugin::Packages; use Devel::REPL::Plugin; -use namespace::clean -except => [ "meta" ]; +use namespace::autoclean; -use vars qw($PKG_SAVE); +our $PKG_SAVE; has 'current_package' => ( isa => 'Str', @@ -26,14 +26,15 @@ around 'mangle_line' => sub { my $line = $self->$orig(@args); # add a BEGIN block to set the package around at the end of the sub # without mangling the return value (we save it off into a global) - $line .= '; BEGIN { $Devel::REPL::Plugin::Packages::PKG_SAVE = __PACKAGE__; }'; + $line .= ' +; BEGIN { $Devel::REPL::Plugin::Packages::PKG_SAVE = __PACKAGE__; }'; return $line; }; after 'execute' => sub { my ($self) = @_; # if we survived execution successfully, save the new package out the global - $self->current_package($PKG_SAVE); + $self->current_package($PKG_SAVE) if defined $PKG_SAVE; }; around 'eval' => sub { @@ -49,3 +50,12 @@ package Devel::REPL::Plugin::Packages::DefaultScratchpad; # declare empty scratchpad package for cleanliness 1; + +__END__ + +=head1 NAME + +Devel::REPL::Plugin::Packages - Keep track of which package the user is in + +=cut +