Acme-Perl-VM
view release on metacpan or search on metacpan
lib/Acme/Perl/VM/PP.pm view on Meta::CPAN
return &_do_kv;
}
sub pp_wantarray{
my $cxix = dopoptosub($#PL_cxstack);
if($cxix < 0){
PUSH(sv_undef);
}
else{
my $gimme = $PL_cxstack[$cxix]->gimme;
if($gimme == G_ARRAY){
PUSH(sv_yes);
}
elsif($gimme == G_SCALAR){
PUSH(sv_no);
}
else{
PUSH(sv_undef);
}
}
return $PL_op->next;
}
sub pp_undef{
if(!$PL_op->private){
PUSH(sv_undef);
return $PL_op->next;
}
not_implemented 'undef(expr)';
}
sub pp_scalar{
return $PL_op->next;
}
sub pp_not{
SET( !SvTRUE(TOP) ? sv_yes : sv_no );
return $PL_op->next;
}
sub pp_qr{
my $re = $PL_op->precomp;
mPUSH(svref_2object(\qr/$re/));
return $PL_op->next;
}
1;
__END__
=head1 NAME
Acme::Perl::VM::PP - ppcodes for APVM
=head1 SYNOPSIS
use Acme::Perl::VM;
=head1 PPCODE
Implemented ppcodes:
=over 4
=item pp_nextstate
=item pp_pushmark
=item pp_const
=item pp_gv
=item pp_padsv
=item pp_padav
=item pp_rv2av
=item pp_list
=item pp_method
=item pp_method_named
=item pp_entersub
=item pp_leavesub
=item pp_return
=item pp_enter
=item pp_leave
=item pp_enterloop
=item pp_leaveloop
=item pp_lineseq
=item pp_stub
=item pp_unstack
=item pp_sassign
=item pp_aassign
=item pp_cond_expr
=item pp_and
=item pp_or
=item pp_range
=item pp_preinc
=item pp_lt
( run in 1.103 second using v1.01-cache-2.11-cpan-71847e10f99 )