perl
view release on metacpan or search on metacpan
The C<B> module contains a set of utility functions for querying the
current state of the Perl interpreter; typically these functions
return objects from the B::SV and B::OP classes, or their derived
classes. These classes in turn define methods for querying the
resulting objects about their own internal state.
=head1 Utility Functions
The C<B> module exports a variety of functions: some are simple
utility functions, others provide a Perl program with a way to
get an initial "handle" on an internal object.
=head2 Functions Returning C<B::SV>, C<B::AV>, C<B::HV>, and C<B::CV> objects
For descriptions of the class hierarchy of these objects and the
methods that can be called on them, see below, L<"OVERVIEW OF
CLASSES"> and L<"SV-RELATED CLASSES">.
=over 4
=item sv_undef
Returns the SV object corresponding to the C variable C<sv_undef>.
=item sv_yes
Returns the SV object corresponding to the C variable C<sv_yes>.
=item sv_no
Returns the SV object corresponding to the C variable C<sv_no>.
=item svref_2object(SVREF)
Takes a reference to any Perl value, and turns the referred-to value
into an object in the appropriate B::OP-derived or B::SV-derived
class. Apart from functions such as C<main_root>, this is the primary
way to get an initial "handle" on an internal perl data structure
which can then be followed with the other access methods.
The returned object will only be valid as long as the underlying OPs
and SVs continue to exist. Do not attempt to use the object after the
underlying structures are freed.
=item amagic_generation
Returns the SV object corresponding to the C variable C<amagic_generation>.
As of Perl 5.18, this is just an alias to C<PL_na>, so its value is
meaningless.
=item init_av
Returns the AV object (i.e. in class B::AV) representing INIT blocks.
=item check_av
Returns the AV object (i.e. in class B::AV) representing CHECK blocks.
=item unitcheck_av
Returns the AV object (i.e. in class B::AV) representing UNITCHECK blocks.
=item begin_av
Returns the AV object (i.e. in class B::AV) representing BEGIN blocks.
=item end_av
Returns the AV object (i.e. in class B::AV) representing END blocks.
=item comppadlist
Returns the PADLIST object (i.e. in class B::PADLIST) of the global
comppadlist. In Perl 5.16 and earlier it returns an AV object (class
B::AV).
=item regex_padav
Only when perl was compiled with ithreads.
=item main_cv
Return the (faked) CV corresponding to the main part of the Perl
program.
=back
=head2 Functions for Examining the Symbol Table
=over 4
=item walksymtable(SYMREF, METHOD, RECURSE, PREFIX)
Walk the symbol table starting at SYMREF and call METHOD on each
symbol (a B::GV object) visited. When the walk reaches package
symbols (such as "Foo::") it invokes RECURSE, passing in the symbol
name, and only recurses into the package if that sub returns true.
PREFIX is the name of the SYMREF you're walking.
For example:
# Walk CGI's symbol table calling print_subs on each symbol.
# Recurse only into CGI::Util::
walksymtable(\%CGI::, 'print_subs',
sub { $_[0] eq 'CGI::Util::' }, 'CGI::');
print_subs() is a B::GV method you have declared. Also see L<"B::GV
Methods">, below.
=back
=head2 Functions Returning C<B::OP> objects or for walking op trees
For descriptions of the class hierarchy of these objects and the
methods that can be called on them, see below, L<"OVERVIEW OF
CLASSES"> and L<"OP-RELATED CLASSES">.
=over 4
=item main_root
( run in 0.590 second using v1.01-cache-2.11-cpan-ceb78f64989 )