package Devel::ebug::Backend::Plugin::Pad;
use strict;
use warnings;
use PadWalker;
sub register_commands {
return ( pad => { sub => \&DB::pad } )
}
package DB;
use Scalar::Util qw(blessed reftype);
sub pad {
my($req, $context) = @_;
my $pad;
my $h = eval { PadWalker::peek_my(2) };
foreach my $k (sort keys %$h) {
if ($k =~ /^@/) {
my @v = eval "package $context->{package}; ($k)";
$pad->{$k} = \@v;
} else {
my $v = eval "package $context->{package}; $k";
$pad->{$k} = $v;
# workaround for blessed globs
$pad->{$k} = "".$v if blessed $v and reftype $v eq "GLOB";
}
}
return { pad => $pad };
}
1;
syntax highlighted by Code2HTML, v. 0.9.1