X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FPackages.pm;h=064c3fab5efec584fbf3b2cbf01f0fbb5790623d;hp=1c149e23df2f28233def95c684d62f3b8f200cd3;hb=796cd7ec80de14e45ca8221d545aceb7b9bc0b71;hpb=ae5e19ec178afa6178efb13d556c781800ece6ca diff --git a/lib/Devel/REPL/Plugin/Packages.pm b/lib/Devel/REPL/Plugin/Packages.pm index 1c149e2..064c3fa 100644 --- a/lib/Devel/REPL/Plugin/Packages.pm +++ b/lib/Devel/REPL/Plugin/Packages.pm @@ -1,7 +1,14 @@ +use strict; +use warnings; package Devel::REPL::Plugin::Packages; +# ABSTRACT: Keep track of which package the user is in -use Moose::Role; -use vars qw($PKG_SAVE); +our $VERSION = '1.003027'; + +use Devel::REPL::Plugin; +use namespace::autoclean; + +our $PKG_SAVE; has 'current_package' => ( isa => 'Str', @@ -24,14 +31,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 { @@ -42,7 +50,8 @@ around 'eval' => sub { return $self->$orig(@args); }; -package Devel::REPL::Plugin::Packages::DefaultScratchpad; +package # hide from PAUSE + Devel::REPL::Plugin::Packages::DefaultScratchpad; # declare empty scratchpad package for cleanliness