From 04b85669c399942716cc222829b1dae05a1ed7c2 Mon Sep 17 00:00:00 2001 From: Tony Bowden Date: Sat, 25 Aug 2001 16:13:14 +0100 Subject: [PATCH] Re: 'can' with undefined subs Message-Id: <20010825151314.B11788@soto.kasei.com> p4raw-id: //depot/perl@11751 --- lib/UNIVERSAL.pm | 9 +++++++++ 1 file changed, 9 insertions(+) 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 ] ) -- 2.7.4