Why not adopt me?
NAME
Class::Accessor::Class - simple class variable accessors
VERSION
version 0.10
SYNOPSIS
Set up a module with class accessors:
package Text::Fortune;
use base qw(Class::Accessor::Class Exporter);
Robot->mk_class_accessors(qw(language offensive collection));
sub fortune {
if (__PACKAGE__->offensive) {
..
Then, when using the module:
use Text::Fortune;
Text::Fortune->offensive(1);
print fortune; # prints an offensive fortune
Text::Fortune->language('EO');
print fortune; # prints an offensive fortune in Esperanto
DESCRIPTION
Class::Accessor::Class provides a simple way to create accessor and mutator methods for class variables, just as Class::Accessor provides for objects. It can use either an enclosed lexical variable, or a package variable.
This module is implemented as a subclass of Class::Accessor, and builds its implementation on some of Class::Accessor. As a side benefit, a class that isa Class::Accessor::Class is also a Class::Accessor and can use its methods.
METHODS
mk_class_accessors
package Foo;
use base qw(Class::Accessor::Class);
Foo->mk_class_accessors(qw(foo bar baz));
Foo->foo(10);
my $obj = new Foo;
print $obj->foo; # 10
This method adds accessors for the named class variables. The accessor will get or set a lexical variable to which the accessor is the only access.
mk_package_accessors
package Foo;
use base qw(Class::Accessor::Class);
Foo->mk_package_accessors(qw(foo bar baz));
Foo->foo(10);
my $obj = new Foo;
print $obj->foo; # 10
print Foo::foo; # 10
This method adds accessors for the named class variables. The accessor will get or set the named variable in the package's symbol table.
DETAILS
make_class_accessor
$accessor = Class->make_class_accessor($field);
This method generates a subroutine reference which acts as an accessor for the named field. (Actually, the field name is irrelevant; subsequent calls to this method with identical field names will produce distinct closures. This behavior should be changed, but I don't see any rush.)
make_package_accessor
$accessor = Class->make_package_accessor($field);
This method generates a subroutine reference which acts as an accessor for the named field, which is stored in the scalar named field
in Class
's symbol table.
AUTHOR
Ricardo Signes, <rjbs@cpan.org>
BUGS
Please report any bugs or feature requests to bug-class-accessor-class@rt.cpan.org
, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
COPYRIGHT
Copyright 2004 Ricardo Signes, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.