Class::MakeMethods::Basic::Global - Basic shared methods |
Class::MakeMethods::Basic::Global - Basic shared methods
package MyObject; use Class::MakeMethods::Basic::Global ( scalar => [ 'foo', 'bar' ], array => 'my_list', hash => 'my_index', ); .... # Store and retrieve global values MyObject->foo('Foobar'); print MyObject->foo(); # All instances of your class access the same values $my_object->bar('Barbados'); print $other_one->bar(); # Array accessor MyObject->my_list(0 => 'Foozle', 1 => 'Bang!'); print MyObject->my_list(1); # Hash accessor MyObject->my_index('broccoli' => 'Blah!', 'foo' => 'Fiddle'); print MyObject->my_index('foo');
The Basic::Global subclass of MakeMethods provides basic accessors for data shared by an entire class, sometimes called ``static'' or ``class data.''
When you use
this package, the method names you provide
as arguments cause subroutines to be generated and installed in
your module.
See Calling Conventions in the Class::MakeMethods::Basic manpage for a summary, or USAGE in the Class::MakeMethods manpage for full details.
To declare methods, pass in pairs of a method-type name followed by one or more method names. Valid method-type names for this package are listed in METHOD GENERATOR TYPES.
See Declaration Syntax in the Class::MakeMethods::Basic manpage for more syntax information.
For each method name passed, uses a closure to generate a subroutine with the following characteristics:
Sample declaration and usage:
package MyObject; use Class::MakeMethods::Basic::Hash ( scalar => 'foo', ); ... # Store value MyObject->foo('Foozle'); # Retrieve value print MyObject->foo;
For each method name passed, uses a closure to generate a subroutine with the following characteristics:
Sample declaration and usage:
package MyObject; use Class::MakeMethods::Basic::Hash ( array => 'bar', ); ... # Set values by position $obj->bar(0 => 'Foozle', 1 => 'Bang!'); # Positions may be overwritten, and in any order $obj->bar(2 => 'And Mash', 1 => 'Blah!'); # Retrieve value by position print $obj->bar(1); # Retrieve slice of values by position print join(', ', $obj->bar( [0, 2] ) ); # Direct access to referenced array print scalar @{ $obj->bar() }; # Reset the array contents to empty @{ $obj->bar() } = ();
For each method name passed, uses a closure to generate a subroutine with the following characteristics:
Sample declaration and usage:
package MyObject; use Class::MakeMethods::Basic::Hash ( hash => 'baz', ); ... # Set values by key $obj->baz('foo' => 'Foozle', 'bar' => 'Bang!'); # Values may be overwritten, and in any order $obj->baz('broccoli' => 'Blah!', 'foo' => 'Fiddle'); # Retrieve value by key print $obj->baz('foo'); # Retrieve slice of values by position print join(', ', $obj->baz( ['foo', 'bar'] ) ); # Direct access to referenced hash print keys %{ $obj->baz() }; # Reset the hash contents to empty @{ $obj->baz() } = ();
See the Class::MakeMethods manpage for general information about this distribution.
See the Class::MakeMethods::Basic manpage for more about this family of subclasses.
Class::MakeMethods::Basic::Global - Basic shared methods |