Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

rovf's scratchpad

by rovf (Priest)
on May 15, 2008 at 15:53 UTC ( #686764=scratchpad: print w/replies, xml ) Need Help??

What you have to do to use Attribute::Default from CPAN, if you want to use it in a module which also uses the Exporter.

package Example; use strict; use warnings; # (1) Access the Exporter in the following way. # - with 'use', not 'require' or 'use base "..."'. # - qw(import) # - do NOT fiddle around with @ISA use Exporter qw(import); # (2) Access Attribute::Default with use base, not with # use Attribute::Default; # (This is the documented way anyway) use base 'Attribute::Default'; our @EXPORT=qw(foo bar); our @EXPORT_OK=qw(baz); # subs which you are only using within this package, # you can define as documented in the perldoc for # Attribute::Default, but DO NOT USE PROTOTYPES. # For those subs however, which are exported, # you have to use the following trick. Let's assume # that foo is supposed to have the signature # sub foo($;$$) # and that the default values for the missing arguments # are 'hanky' and 'panky'. Then do it like this: sub foo($;$$) { &_foo } # of course you don't HAVE # to write the prototype sub _foo : Default('hanky','panky') # but no proto here! { ... }

Using the Chatterbox: URLs, Special Characters, and Code
Log In?

What's my password?
Create A New User
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2017-05-29 17:45 GMT
Find Nodes?
    Voting Booth?