Class::MakeMethods::Attribute - Declare generated subs with attribute syntax
package MyObject; use Class::MakeMethods::Attribute 'Standard::Hash'; sub new :MakeMethod('new'); sub foo :MakeMethod('scalar'); sub bar :MakeMethod('scalar', { hashkey => 'bar_data' }); sub debug :MakeMethod('Standard::Global:scalar');
This package allows common types of methods to be generated via a subroutine attribute declaration. (Available in Perl 5.6 and later.)
Adding the :MakeMethod() attribute to a subroutine declaration causes Class::MakeMethods to create and install a subroutine based on the parameters given to the :MakeMethod attribute.
You can declare a default method-generation class by passing the name of a MakeMethods subclass in the use Class::MakeMethods::Attribute statement. This default method-generation class will also apply as the default to any subclasses declared at compile time. If no default method-generation class is selected, you will need to fully-qualify all method type declarations.
Here's a typical use of Class::MakeMethods::Attribute:
package MyObject; use Class::MakeMethods::Attribute 'Standard::Hash'; sub new :MakeMethod('new'); sub foo :MakeMethod('scalar'); sub bar :MakeMethod('scalar', { hashkey => 'bar_data' }); sub debug :MakeMethod('Standard::Global:scalar'); package MySubclass; use base 'MyObject'; sub bazzle :MakeMethod('scalar');
This is equivalent to the following explicit Class::MakeMethods invocations:
package MyObject; use Class::MakeMethods ( -MakerClass => 'Standard::Hash', new => 'new', scalar => 'foo', scalar => [ 'ba', { hashkey => 'bar_data' } ], 'Standard::Global:scalar' => 'debug', ); package MySubclass; use base 'MyObject'; use Class::MakeMethods ( -MakerClass => 'Standard::Hash', scalar => 'bazzle', );
The following warnings and errors may be produced when using Class::MakeMethods::Attribute to generate methods. (Note that this list does not include run-time messages produced by calling the generated methods, or the standard messages produced by Class::MakeMethods.)
You can not use the :MakeMethod attribute with lexical or anonymous subroutine declarations.
:MakeMethod
You called :MakeMethod() without the required method-type argument.
:MakeMethod()
See Attribute::Handlers byÊDamian Conway.
See Class::MakeMethods for general information about this distribution.
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in 'byÊDamian'. Assuming CP1252
To install Class::MakeMethods, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Class::MakeMethods
CPAN shell
perl -MCPAN -e shell install Class::MakeMethods
For more information on module installation, please visit the detailed CPAN module installation guide.