From: Mike Guy Date: Tue, 1 May 2001 20:12:11 +0000 (+0100) Subject: Extra UNIVERSAL documentation X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=3189d65a81e5869a7ba75fe52949ef916f5017e9;p=p5sagit%2Fp5-mst-13.2.git Extra UNIVERSAL documentation Message-Id: p4raw-id: //depot/perl@9933 --- diff --git a/pod/perlobj.pod b/pod/perlobj.pod index f31ce2c..7d7eee5 100644 --- a/pod/perlobj.pod +++ b/pod/perlobj.pod @@ -361,21 +361,32 @@ are inherited by all other classes: C returns I if its object is blessed into a subclass of C -You can also call C as a sub with two arguments. The -first does not need to be an object or even a reference. This -allows the ability to check what a reference points to, or whether +You can also call C as a subroutine with two arguments. +The first does not need to be an object or even a reference. This +allows you to check what a reference points to, or whether something is a reference of a given type. Example if(UNIVERSAL::isa($ref, 'ARRAY')) { #... } +To determine if a reference is a blessed object, you can write + + print "It's an object\n" if UNIVERSAL::isa($val, 'UNIVERSAL'); + =item can(METHOD) C checks to see if its 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 can also be called as a subroutine with two arguments. +It'll always return I if its first argument isn't an object or a +class name. So here's another way to check if a reference is a +blessed object + + print "It's still an object\n" if UNIVERSAL::can($val, 'can'); + =item VERSION( [NEED] ) C returns the version number of the class (package). If the