X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FDevel-REPL.git;a=blobdiff_plain;f=lib%2FDevel%2FREPL%2FPlugin%2FFindVariable.pm;h=66eb920905e8a66993dd2b838e605dbf52cf6837;hp=d704dea6d388c6f69b6ca40ef5d3db84c43f537c;hb=e2d0b0198529e2e06593df8ebab7a8413bc932e1;hpb=06df07674a6770b9bef20bff5bebc7ce648d4f35 diff --git a/lib/Devel/REPL/Plugin/FindVariable.pm b/lib/Devel/REPL/Plugin/FindVariable.pm index d704dea..66eb920 100644 --- a/lib/Devel/REPL/Plugin/FindVariable.pm +++ b/lib/Devel/REPL/Plugin/FindVariable.pm @@ -1,7 +1,8 @@ package Devel::REPL::Plugin::FindVariable; -use Moose::Role; -use namespace::clean -except => [ 'meta' ]; +use Devel::REPL::Plugin; +use namespace::sweep; +use Package::Stash; sub find_variable { my ($self, $name) = @_; @@ -21,10 +22,11 @@ sub find_variable { : 'main'; my $package = $name =~ s/^(.*)(::|')// ? $1 : $default_package; - my $meta = Class::MOP::Class->initialize($package); + my $meta = Package::Stash->new($package); - return unless $meta->has_package_symbol("$sigil$name"); - $meta->get_package_symbol("$sigil$name"); + # Package::Stash::has_symbol method *requires* a sigil + return unless length($sigil) and $meta->has_symbol("$sigil$name"); + $meta->get_symbol("$sigil$name"); } 1;