Name : perl-Class-Data-Accessor
| |
Version : 0.40.40
| Vendor : obs://build_opensuse_org/devel:languages:perl
|
Release : lp156.1.1
| Date : 2024-08-25 00:48:56
|
Group : Unspecified
| Source RPM : perl-Class-Data-Accessor-0.40.40-lp156.1.1.src.rpm
|
Size : 0.01 MB
| |
Packager : https://www_suse_com/
| |
Summary : Inheritable, overridable class and instance data accessor creation
|
Description :
*This module is now deprecated!*
Please consider using Class::Accessor::Grouped or Moose
Class::Data::Accessor is the marriage of Class::Accessor and Class::Data::Inheritable into a single module. It is used for creating accessors to class data that overridable in subclasses as well as in class instances.
For example:
Pere::Ubu->mk_classaccessor(\'Suitcase\');
will generate the method Suitcase() in the class Pere::Ubu.
This new method can be used to get and set a piece of class data.
Pere::Ubu->Suitcase(\'Red\'); $suitcase = Pere::Ubu->Suitcase;
Taking this one step further, you can make a subclass that inherits from Pere::Ubu:
package Raygun; use base qw(Pere::Ubu);
$suitcase = Raygun->Suitcase;
Raygun inherits its Suitcase class data from Pere::Ubu.
Inheritance of class data works analogous to method inheritance. As long as Raygun does not \"override\" its inherited class data (by using Suitcase() to set a new value) it will continue to use whatever is set in Pere::Ubu and inherit further changes:
Pere::Ubu->Suitcase(\'Blue\');
However, should Raygun decide to set its own Suitcase() it has now \"overridden\" Pere::Ubu and is on its own, just like if it had overridden a method:
Raygun->Suitcase(\'Orange\');
Now that Raygun has overridden Pere::Ubu, further changes by Pere::Ubu no longer effect Raygun.
Pere::Ubu->Suitcase(\'Samsonite\');
You can also override this class data on a per-object basis. If $obj isa Pere::Ubu then
$obj->Suitcase; # will return Samsonite
$obj->Suitcase(\'Purple\'); # will set Suitcase *for this object only*
And after you\'ve done that,
$obj->Suitcase; # will return Purple
but
Pere::Ubu->Suitcase; # will still return Samsonite
If you don\'t want this behaviour use Class::Data::Inheritable instead.
\'mk_classaccessor\' will die if used as an object method instead of as a class method.
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/perl/15.6/noarch |