package Devel::ebug::Plugin::Pad;
use strict;
use warnings;
use base qw(Exporter);
our @EXPORT = qw(pad pad_human);
# find the pad
sub pad {
my($self) = @_;
my $response = $self->talk({ command => "pad" });
return $response->{pad};
}
# human-readable pad
sub pad_human {
my($self) = @_;
my $pad = $self->pad;
foreach my $var (keys %$pad) {
if ($var =~ /^@/) {
my @values = @{$pad->{$var}};
my $value = $self->stack_trace_human_args(@values);
$pad->{$var} = $value;
} elsif ($var =~ /^%/) {
$pad->{$var} = '(...)';
} else {
my $value = $pad->{$var};
$value = $self->stack_trace_human_args($value);
$value =~ s/^\(//;
$value =~ s/\)$//;
$pad->{$var} = $value;
}
}
return $pad;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1