MakeMethods::Evaled::Hash(3pm) | User Contributed Perl Documentation | MakeMethods::Evaled::Hash(3pm) |
Class::MakeMethods::Evaled::Hash - Typical hash methods
package MyObject; use Class::MakeMethods::Evaled::Hash ( new => 'new', scalar => [ 'foo', 'bar' ], array => 'my_list', hash => 'my_index', ); ... # Constructor my $obj = MyObject->new( foo => 'Foozle' ); # Scalar Accessor print $obj->foo(); $obj->bar('Barbados'); print $obj->bar(); # Array accessor $obj->my_list(0 => 'Foozle', 1 => 'Bang!'); print $obj->my_list(1); # Hash accessor $obj->my_index('broccoli' => 'Blah!', 'foo' => 'Fiddle'); print $obj->my_index('foo');
The Evaled::Hash subclass of MakeMethods provides a simple constructor and accessors for blessed-hash object instances.
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 Class::MakeMethods::Standard for a summary, or "USAGE" in Class::MakeMethods 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 Class::MakeMethods::Standard for more syntax information.
For each method name passed, returns a subroutine with the following characteristics:
Sample declaration and usage:
package MyObject; use Class::MakeMethods::Evaled::Hash ( new => 'new', ); ... # Bare constructor my $empty = MyObject->new(); # Constructor with initial values my $obj = MyObject->new( foo => 'Foozle', bar => 'Barbados' ); # Copy with overriding value my $copy = $obj->new( bar => 'Bob' );
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::Evaled::Hash ( scalar => 'foo', ); ... # Store value $obj->foo('Foozle'); # Retrieve value print $obj->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::Evaled::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); # 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::Evaled::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'); # Direct access to referenced hash print keys %{ $obj->baz() }; # Reset the hash contents to empty @{ $obj->baz() } = ();
See Class::MakeMethods for general information about this distribution.
See Class::MakeMethods::Evaled for more about this family of subclasses.
2022-10-13 | perl v5.34.0 |