SNMP::Info::MRO(3pm)
πΈ SNMP::Info::MRO πΈ
okay bestie, so this is the manual page for SNMP::Info::MRO β that's a 3pm Perl module page from the User Contributed Perl Documentation corner of the internet. And the vibe? It's method resolution introspection for SNMP::Info. Like, it's the little detective that tells you where a method actually came from. π΅οΈββοΈβ¨
π NAME
SNMP::Info::MRO β Method resolution introspection for SNMP::Info
π SYNOPSIS
use SNMP::Info::MRO;
use Data::Printer;
# SNMP::Info::MRO::print_* functions
SNMP::Info::MRO::print_superclasses ('SNMP::Info::Layer3::Juniper');
# print output using Data::Printer for other functions
my $buff = SNMP::Info::MRO::all_methods('SNMP::Info::Layer3::Juniper');
p $buff;
π¦ DESCRIPTION
This is a lil set of helpers that shows you where a given method in SNMP::Info has been implemented, and which implementation is actually being used at runtime. no cap, that's the whole gig π
To run this code you need these distributions, like, installed-installed:
- PPI
Class::ISAModule::InfoModule::Load
β¨ FUNCTIONS
Important first: none of the functions are exported. Not one. π
But here's the cute part β for all the helper functions, you can pass either the name of a Perl module, or an object instance of SNMP::Info. Either one, bestie, we're flexible. π
π all_methods( $module )
Returns the location of methods defined in $module and all its ancestor classes (superclasses) β either as Perl subroutines, or via %GLOBALS or %FUNCS configuration. The data structure looks like:
{
method_name => {
globals => [
[ Package::Name => 'mib_leaf.0' ],
[ Other::Package::Name => '1.3.6.1.4.1.9.2.1.58.0' ],
],
},
other_method_name => [
subs => [
'Package::Name',
],
funcs => [
[ Package::Name => 'mib_leaf_name' ],
],
],
}
okay and you NEED to know this: the order of method resolution in SNMP::Info is to first look for a defined subroutine (that part is done by Perl, not us π
), then the AUTOLOAD sequence will search for a definition in %GLOBALS, followed by %FUNCS.
The defining class or module at runtime is always the first entry in the list, if it exists:
$data->{method_name}->{subs}->[0]
if exists $data->{method_name}->{subs};
π subroutines( $module )
Returns the set of subroutines defined in $module and all its ancestor classes (superclasses). The data structure looks like:
{
method_name => [
'Package::Name',
'Other::Package::Name',
],
other_method_name => [
'Package::Name',
],
}
Should a subroutine have been defined more than once, the defining classes are listed in reverse order, so that the definition used at runtime is always:
$data->{method_name}->[0];
π«Ά globals( $module || $object )
Returns a data structure showing how SNMP::Info will resolve MIB Leaf Nodes configured through the %GLOBALS hashes in $module.
The data structure looks like:
{
method_name => [
[ Package::Name => 'mib_leaf_name' ],
[ Other::Package::Name => '1.3.6.1.4.1.9.2.1.58.0' ],
],
other_method_name => [
[ Package::Name => 'mib_leaf.0' ],
],
}
Where a method has been defined in different packages, then they are listed in reverse order, so that the mapping used by SNMP::Info is always:
$data->{method_name}->[0];
π funcs( $module || $object )
Returns a data structure showing how SNMP::Info will resolve MIB Tables configured through the %FUNCS hashes in $module.
See "GLOBALS" in SNMP::Info::Layer3 for further detail. π
π§ munge( $module || $object )
Returns a data structure showing the subroutines used for munging returned values for any method defined in %FUNCS or %GLOBALS. (yes, munge. it's a word. it's their word. we love it. π)
The data structure looks like:
{
method_name => [
[ Package::Name => '&subroutine' ],
[ Other::Package::Name => '&Other::Package::subroutine' ],
],
other_method_name => [
[ Package::Name => '&subroutine' ],
],
}
Where a mapping has been defined in different packages, then they are listed in reverse order, so that the munge subroutine used by SNMP::Info is always:
$data->{method_name}->[0];
π file( $module )
Returns the filename from which Perl will load the given module. that's it. that's the function. iconic minimalism π
π superclasses( $class || $object )
Returns the list (in order) of the names of classes Perl will search to find methods for this SNMP::Info class or object instance.
β οΈ heads up bestie: this one requires theClass::ISAdistribution to be installed. noClass::ISA, no superclasses. π
πΈ print_globals( $module || $object )
Pretty print the output of globals().
β print_funcs( $module || $object )
Pretty print the output of funcs().
π print_munge( $module || $object )
Pretty print the output of munge().
π₯ print_superclasses( $class || $object )
Pretty print the output of superclasses().
π AUTHOR
Oliver Gorwits <oliver@cpan.org>
π COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by The SNMP::Info Project.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the University of California, Santa Cruz nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
and that's the whole page, bestie π«Ά this one's running on perl v5.40.1 and it was dated 2026-02-28 β so go forth, introspect those methods, and remember: the first entry in the list is always the main character. periodt. π
β¨π
π¦ where this page comes from
- ubuntu stonking: libsnmp-info-perl 3.975000-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms