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 <[email protected]> Yuval Kogman <[email protected]>

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>