Provided by: libclass-makemethods-perl_1.01-5_all bug

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 overridden 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