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

FreeBSD Manual Pages

  
 
  

home | help
MakeMethods::AttributeUser Contributed Perl DocumentaMakeMethods::Attribute(3)

NAME
       Class::MakeMethods::Attribute - Declare generated subs with attribute
       syntax

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

DESCRIPTION
       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.

EXAMPLE
       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',
	 );

DIAGNOSTICS
       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.)

       Can't apply MakeMethod attribute	to %s declaration.
	   You can not use the ":MakeMethod" attribute with lexical or
	   anonymous subroutine	declarations.

       No method type provided for MakeMethod attribute.
	   You called ":MakeMethod()" without the required method-type
	   argument.

SEE ALSO
       See Attribute::Handlers byADamian Conway.

       See Class::MakeMethods for general information about this distribution.

POD ERRORS
       Hey! The	above document had some	coding errors, which are explained
       below:

       Around line 139:
	   Non-ASCII character seen before =encoding in	'byADamian'. Assuming
	   CP1252

perl v5.24.1			  2004-09-06	     MakeMethods::Attribute(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | DIAGNOSTICS | SEE ALSO | POD ERRORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Class::MakeMethods::Attribute&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help