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

FreeBSD Manual Pages


home | help
MakeMethods::Template:UsersContributed Perl MakeMethods::Template::ClassVar(3)

       Class::MakeMethods::Template::ClassVar -	Static methods with subclass

	 package MyObject;
	 use Class::MakeMethods::Template::ClassVar (
	   scalar	   => [	'foo' ]

	 package main;

	 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

	   The name of the variable to store the value in. Defaults to the
	   same	name as	the method.

   Standard Methods
       The following methods from Generic should all be	supported:

	 string_index (?)
	 bits (?)
	 array (*)
	 hash (*)
	 tiedhash (?)
	 hash_of_arrays	(?)
	 object	(?)
	 instance (?)
	 array_of_objects (?)
	 code (?)
	 code_or_scalar	(?)

       See Class::MakeMethods::Template::Generic for the interfaces and
       behaviors of these method types.

       The items marked	with a * above are specifically	defined	in this
       package,	whereas	the others are formed automatically by the interaction
       of this package's generic settings with the code	templates provided by
       the Generic superclass.

       The items marked	with a ? above have not	been tested sufficiently;
       please inform the author	if they	do not function	as you would expect.

       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 );

perl v5.32.1			  2004-09-06MakeMethods::Template::ClassVar(3)


Want to link to this manual page? Use this URL:

home | help