develooper Front page | perl.perl5.porters | Postings from April 2001

Re: [PATCH] UNIVERSAL shouldn't require Exporter

Thread Previous | Thread Next
From:
Mike Guy
Date:
April 26, 2001 06:22
Subject:
Re: [PATCH] UNIVERSAL shouldn't require Exporter
Message ID:
E14sljE-0003X9-00@libra.cus.cam.ac.uk
barries <barries@slaysys.com> wrote
>      `isa' is also exportable and can be called as a sub with two argu-
>      ments. This allows the ability to check what a reference points to.
>      Example
>
>	 use UNIVERSAL qw(isa);
>
>	 if(isa($ref, 'ARRAY')) {
>	     #...
>	 }

Oh rats.    That should have been mended when this was added to UNIVERSAL.pm
back in perl5.004_01:

     These subroutines should not be imported via
     "use UNIVERSAL qw(...)".  If you want simple local access to
     them you can do

       *isa = \&UNIVERSAL::isa;

     to import isa into your package.

So the attached patch should be applied to perl5.004_01.
(Actually, it works nicely on bleadperl as well.   :-)


Mike Guy

--- ./pod/perlobj.pod.orig	Thu Apr 26 14:11:24 2001
+++ ./pod/perlobj.pod	Thu Apr 26 14:17:11 2001
@@ -361,12 +361,12 @@
 
 C<isa> returns I<true> if its object is blessed into a subclass of C<CLASS>
 
-C<isa> is also exportable and can be called as a sub with two arguments. This
-allows the ability to check what a reference points to. Example
+You can also call C<UNIVERSAL::isa> 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
+something is a reference of a given type. Example
 
-    use UNIVERSAL qw(isa);
-
-    if(isa($ref, 'ARRAY')) {
+    if(UNIVERSAL::isa($ref, 'ARRAY')) {
     	#...
     }
 
@@ -397,8 +397,7 @@
 
 You may add other methods to the UNIVERSAL class via Perl or XS code.
 You do not need to C<use UNIVERSAL> to make these methods
-available to your program.  This is necessary only if you wish to
-have C<isa> available as a plain subroutine in the current package.
+available to your program (and you should not do so).
 
 =head2 Destructors
 

End of patch

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About