Acme-Perl-VM
view release on metacpan or search on metacpan
lib/Acme/Perl/VM.pm view on Meta::CPAN
}
return;
}
sub cv_external{
my($cv) = @_;
return $cv->XSUB || $external{ ${$cv} };
}
sub ddx{
require Data::Dumper;
my $ddx = Data::Dumper->new(@_);
$ddx->Indent(1);
$ddx->Terse(TRUE);
$ddx->Quotekeys(FALSE);
$ddx->Useqq(TRUE);
return $ddx if defined wantarray;
my $name = ( split '::', (caller 2)[3] )[-1];
print STDERR $name, ': ', $ddx->Dump(), "\n";
return;
}
sub dump_object{
ddx([[ map{ $_ ? $_->object_2svref : $_ } @_ ]]);
}
sub dump_value{
ddx([\@_]);
}
sub dump_stack{
require Data::Dumper;
no warnings 'once';
local $Data::Dumper::Indent = 0;
local $Data::Dumper::Terse = TRUE;
local $Data::Dumper::Quotekeys = FALSE;
local $Data::Dumper::Useqq = TRUE;
deb "(%s)\n", join q{,}, map{
# find variable name
my $varname = '';
my $class = $_->class;
if($class eq 'SPECIAL'){
($varname = $_->special_name) =~ s/^\&PL_//;
$varname;
}
lib/Acme/Perl/VM.pm view on Meta::CPAN
$varname .= '\\';
}
if($padname){
if($padname->POK){
$varname .= $padname->PVX . ' ';
}
last;
}
}
$varname . Data::Dumper->Dump([is_scalar($_) ? ${$_->object_2svref} : $_->object_2svref], [$_->ROK ? 'SV' : '*SV']);
}
} @PL_stack;
return;
}
sub _dump_stack{
my $warn;
my $ddx = ddx([[map{
if(ref $_){
t/09_hash.t view on Meta::CPAN
#!perl -w
use strict;
use Test::More tests => 24;
use Acme::Perl::VM;
use Acme::Perl::VM qw(:perl_h);
sub Dump{
require Data::Dumper;
diag(Data::Dumper::Dumper(@_));
}
my $x = run_block{
my %h;
};
ok !$x;
$x = run_block{
my %h = (key => 10);
};
( run in 0.491 second using v1.01-cache-2.11-cpan-a5abf4f5562 )