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

FreeBSD Manual Pages

  
 
  

home | help
MakeMethods::Utility::UserrContributed PerMakeMethods::Utility::Inheritable(3)

NAME
       Class::MakeMethods::Utility::Inheritable	- "Inheritable"	data

SYNOPSIS
	 package MyClass;
	 sub new { ... }

	 package MySubclass;
	 @ISA =	'MyClass';
	 ...
	 my $obj = MyClass->new(...);
	 my $subobj = MySubclass->new(...);

	 use Class::MakeMethods::Utility::Inheritable qw(get_vvalue set_vvalue );

	 my $dataset = {};
	 set_vvalue($dataset, 'MyClass', 'Foobar');    # Set value for class
	 get_vvalue($dataset, 'MyClass');	       # Gets value "Foobar"

	 get_vvalue($dataset, $obj);		       # Objects "inherit"
	 set_vvalue($dataset, $obj, 'Foible');	       # Until you override
	 get_vvalue($dataset, $obj);		       # Now finds "Foible"

	 get_vvalue($dataset, 'MySubclass');	       # Subclass "inherits"
	 get_vvalue($dataset, $subobj);		       # As do its objects
	 set_vvalue($dataset, 'MySubclass', 'Foozle'); # Until we override it
	 get_vvalue($dataset, 'MySubclass');	       # Now finds "Foozle"

	 get_vvalue($dataset, $subobj);		       # Change	cascades down
	 set_vvalue($dataset, $subobj, 'Foolish');     # Until we override again

	 get_vvalue($dataset, 'MyClass');	       # Superclass is unchanged

DESCRIPTION
       This module provides several functions which allow you to store values
       in a hash corresponding to both objects and classes, and	to retrieve
       those values by searching a object's inheritance	tree until it finds a
       matching	entry.

       This functionality is used by Class::MakeMethods::Standard::Inheritable
       and Class::MakeMethods::Composite::Inheritable to construct methods
       that can	both store class data and be overriden on a per-object level.

REFERENCE
   find_vself
	 $vself	= find_vself( $dataset,	$instance );

       Searches	$instance's inheritance	tree until it finds a matching entry
       in the dataset, and returns either the instance,	the class that
       matched,	or undef.

   get_vvalue
	 $value	= get_vvalue( $dataset,	$instance );

       Searches	$instance's inheritance	tree until it finds a matching entry
       in the dataset, and returns that	value

   set_vvalue
	 $value	= set_vvalue( $dataset,	$instance, $value );

       Searches	$instance's inheritance	tree until it finds a matching entry
       in the dataset, and returns that	value

perl v5.24.1			  2004-09-MakeMethods::Utility::Inheritable(3)

NAME | SYNOPSIS | DESCRIPTION | REFERENCE

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

home | help