Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Info::MRO(3)	      User Contributed Perl Documentation	  Info::MRO(3)

NAME
       SNMP::Info::MRO - Method	resolution introspection for SNMP::Info

SYNOPSIS
	use SNMP::Info::MRO;
	use Data::Printer;

	p SNMP::Info::MRO::all_methods('SNMP::Info::Layer3::Juniper');

DESCRIPTION
       This is a set of	helpers	to show	where a	given method in	SNMP::Info has
       been implemented, and which implementation is being used	at runtime.

       The following distributions are required	to run this code:

       o   PPI

       o   Class::ISA

       o   Module::Info

       o   Module::Load

FUNCTIONS
       None of the functions are exported. For all helper functions, you can
       pass either the name of a Perl module, or an object instance of
       SNMP::Info.

       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' ],
		],
	      ],
	    }

	   It should be	noted that the order of	method resolution in
	   SNMP::Info is to first look for a defined subroutine	(this is done
	   by Perl), 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,	such 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,	such 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.

	   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,	such 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.

       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.

	   Note	this requires the <Class:ISA> distribution to be installed.

       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.

perl v5.24.1			  2016-11-20			  Info::MRO(3)

NAME | SYNOPSIS | DESCRIPTION | FUNCTIONS | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SNMP::Info::MRO&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help