Class::MakeMethods::Template::ClassVar - Static methods with subclass variation
package MyObject; use Class::MakeMethods::Template::ClassVar ( scalar => [ 'foo' ] ); package main; MyObject->foo('bar') print MyObject->foo(); $MyObject::foo = 'bazillion'; print MyObject->foo();
These meta-methods provide access to package (class global) variables, with the package determined at run-time.
This is basically the same as the PackageVar meta-methods, except that PackageVar methods find the named variable in the package that defines the method, while ClassVar methods use the package the object is blessed into. As a result, subclasses will each store a distinct value for a ClassVar method, but will share the same value for a PackageVar or Static method.
Common Parameters: The following parameters are defined for ClassVar meta-methods.
The name of the variable to store the value in. Defaults to the same name as the method.
Creates methods to handle a scalar variable in the package of an instance.
See the documentation on Generic:scalar for interfaces and behaviors.
Generic:scalar
Creates methods to handle a array variable in the package of an instance.
See the documentation on Generic:array for interfaces and behaviors.
Generic:array
Creates methods to handle a hash variable in the package of an instance.
See the documentation on Generic:hash for interfaces and behaviors.
Generic:hash
This rewrite rule converts package variable names into ClassVar methods of the equivalent data type.
Here's an example declaration:
package MyClass; use Class::MakeMethods::Template::ClassVar ( vars => '$VERSION @ISA' );
MyClass now has methods that get and set the contents of its $MyClass::VERSION and @MyClass::ISA package variables:
MyClass->VERSION( 2.4 ); MyClass->push_ISA( 'Exporter' );
Subclasses can use these methods to adjust their own variables:
package MySubclass; MySubclass->MyClass::push_ISA( 'MyClass' ); MySubclass->VERSION( 1.0 );
To install Class::MakeMethods::Template, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Class::MakeMethods::Template
CPAN shell
perl -MCPAN -e shell install Class::MakeMethods::Template
For more information on module installation, please visit the detailed CPAN module installation guide.