From: Tony Bowden Date: Sat, 25 Aug 2001 15:13:14 +0000 (+0100) Subject: Re: 'can' with undefined subs X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=04b85669c399942716cc222829b1dae05a1ed7c2;p=p5sagit%2Fp5-mst-13.2.git Re: 'can' with undefined subs Message-Id: <20010825151314.B11788@soto.kasei.com> p4raw-id: //depot/perl@11751 --- diff --git a/lib/UNIVERSAL.pm b/lib/UNIVERSAL.pm index a66f8d5..a9cb478 100644 --- a/lib/UNIVERSAL.pm +++ b/lib/UNIVERSAL.pm @@ -45,6 +45,15 @@ C checks if the object has a method called C. If it does then a reference to the sub is returned. If it does not then I is returned. +C cannot know whether an object will be able to provide a method +through AUTOLOAD, so a return value of I does not necessarily mean +the object will not be able to handle the method call. To get around +this some module authors use a forward declaration (see L) +for methods they will handle via AUTOLOAD. For such 'dummy' subs, C +will still return a code reference, which, when called, will fall through +to the AUTOLOAD. If no suitable AUTOLOAD is provided, calling the coderef +will cause an error. + C can be called as either a static or object method call. =item VERSION ( [ REQUIRE ] )