[OT] best way to determine existence of a function in a package

Tim Sweetman ti at lemonia.org
Mon Nov 19 22:21:06 GMT 2007

Jonathan Rockway wrote:

>On Mon, 2007-11-19 at 11:16 +0000, Paul LeoNerd Evans wrote:
>>You don't need a reference. I've always found that UNIVERSAL::can() works
>>just as well:
>>  if( my $subref = UNIVERSAL::can( "Package", "function" ) ) {
>>     $subref->( args, here );
>>  }
>Everyone was quick to jump down your throat on this one, so I thought
>I'd explain why.
They're just like that.

"Whenever you want to on AUTOLOAD() its almost always better to create a 
generic method that takes the names you would have autoloaded as an 
extra argument rather than having methods created on the fly" - Damian 
Conway, "Perl Best Practices"

http://www.perlmonks.org/?node_id=342804 # long discussion here


>  Consider this case:
>   package My::Module;
>   our $AUTOLOAD;
>   sub AUTOLOAD { return 42 if $AUTOLOAD =~ /forty_?two/ }
How about


That'll work, I think, and, as far as I can see, should keep everyone happy.


More information about the london.pm mailing list