NAME
B::Hooks::OP::Check::LeaveEval - call a subroutine when new code finishes compiling
SYNOPSIS
use B::Hooks::OP::Check::LeaveEval;
my $id = B::Hooks::OP::Check::LeaveEval::register(sub { print "New code!\n" });
require Foo; # will print "New code!"
eval 'sub Foo::bar { ... }'; # will print "New code!"
B::Hooks::OP::Check::LeaveEval::unregister($id);
require Bar; # won't print
DESCRIPTION
This module allows to hook into every execution of the leaveeval
opcode, this happens when a new module is finished loading (either via use
or require
) or an eval
is done. Essentially, this means it will be called whenever new code is finished compling.
FUNCTIONS
register
my $id = B::Hooks::OP::Check::LeaveEval::register(sub { ... });
Register a callback for leaveeval
executions. The callback will receive no arguments and its return value will be ignored.
The returned $id
can be used to remove the callback later (see unregister).
unregister
B::Hooks::OP::Check::LeaveEval::unregister($id);
Remove the callback referenced by $id
.
AUTHOR
Szymon Nieznański <s.nez@member.fsf.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020 by Szymon Nieznański.
This is free software; you can redistribute it and/or modify it under the same terms as Perl itself.