Devel-Trepan-Shell

 view release on metacpan or  search on metacpan

lib/Devel/REPL/Plugin/Perl5db.pm  view on Meta::CPAN

package Devel::REPL::Plugin::Perl5db;

use Devel::REPL::Plugin;
use Enbugger 'perl5db';
use namespace::clean -except => [ 'meta' ];

has 'history' => (
   isa => 'ArrayRef', is => 'rw', required => 1, lazy => 1,
   default => sub { [] }
);

around 'read' => sub {
   my $orig = shift;
   my ($self, @args) = @_;
   my $line = $self->$orig(@args);
   if (defined $line) {
       if ($line =~ m/^%perl5db\s+(.*)$/) {
	   my $eval_code = $1;
	   $DB::eval_string = 
"package Devel::REPL::Plugin::Packages::DefaultScratchpad;
Enbugger->stop;  # newline is nice to have in showing code
$eval_code;
\$DB::signal = \$DB::single = \$DB::trace = 0;";
	   eval $DB::eval_string;
	   return $@;
       }
   }
   return $line;
};

1;

__END__

=head1 NAME

Devel::REPL::Plugin::TrepanShell - Add '%' commands to call back Trepan in a Devel::REPL shell invoked from Devel::Trepan

=cut



( run in 0.818 second using v1.01-cache-2.11-cpan-5511b514fd6 )