NAME
B::OPCheck - PL_check hacks using Perl callbacks
SYNOPSIS
use B::Generate; # to change things
use B::OPCheck entersub => check => sub {
my $op = shift; # op has been checked by normal PL_check
sodomize($op);
};
foo(); # this entersub will have the callback triggered
DESCRIPTION
PL_check is an array indexed by opcode number (op_type) that contains
function pointers invoked as the last stage of optree compilation, per
op.
This hook is called in bottom up order, as the code is parsed and the
optree is prepared.
This is how modules like autobox do their magic
This module provides an api for registering PL_check hooks lexically,
allowing you to alter the behavior of certain ops using B::Generate from
perl space.
CHECK TYPES
check
Called after normal PL_checking. The return value is ignored.
after
Not yet implemented.
Allows you to return a processed B::OP. The op has been processed by
PL_check already.
before
Not yet implemented.
Allows you to return a processed B::OP to be passed to normal
PL_check.
replace
Not yet implemented.
Allows you to return a processed B::OP yourself, skipping normal
PL_check handling completely.
AUTHORS
Chia-liang Kao <clkao@clkao.org> Yuval Kogman <nothingmuch@woobling.org>
COPYRIGHT
Copyright 2008 by Chia-liang Kao, Yuval Kogman
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See <http://www.perl.com/perl/misc/Artistic.html>