home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl_mlb.zip / UNIVERSAL.pm < prev    next >
Text File  |  1997-11-25  |  2KB  |  98 lines

  1. package UNIVERSAL;
  2.  
  3. # UNIVERSAL should not contain any extra subs/methods beyond those
  4. # that it exists to define. The use of Exporter below is a historical
  5. # accident that should be fixed sometime.
  6. require Exporter;
  7. *import = \&Exporter::import;
  8. @EXPORT_OK = qw(isa can);
  9.  
  10. 1;
  11. __END__
  12.  
  13. =head1 NAME
  14.  
  15. UNIVERSAL - base class for ALL classes (blessed references)
  16.  
  17. =head1 SYNOPSIS
  18.  
  19.     $io = $fd->isa("IO::Handle");
  20.     $sub = $obj->can('print');
  21.  
  22.     $yes = UNIVERSAL::isa($ref, "HASH");
  23.  
  24. =head1 DESCRIPTION
  25.  
  26. C<UNIVERSAL> is the base class which all bless references will inherit from,
  27. see L<perlobj>
  28.  
  29. C<UNIVERSAL> provides the following methods
  30.  
  31. =over 4
  32.  
  33. =item isa ( TYPE )
  34.  
  35. C<isa> returns I<true> if C<REF> is blessed into package C<TYPE>
  36. or inherits from package C<TYPE>.
  37.  
  38. C<isa> can be called as either a static or object method call.
  39.  
  40. =item can ( METHOD )
  41.  
  42. C<can> checks if the object has a method called C<METHOD>. If it does
  43. then a reference to the sub is returned. If it does not then I<undef>
  44. is returned.
  45.  
  46. C<can> can be called as either a static or object method call.
  47.  
  48. =item VERSION ( [ REQUIRE ] )
  49.  
  50. C<VERSION> will return the value of the variable C<$VERSION> in the
  51. package the object is blessed into. If C<REQUIRE> is given then
  52. it will do a comparison and die if the package version is not
  53. greater than or equal to C<REQUIRE>.
  54.  
  55. C<VERSION> can be called as either a static or object method call.
  56.  
  57. =back
  58.  
  59. The C<isa> and C<can> methods can also be called as subroutines
  60.  
  61. =over 4
  62.  
  63. =item UNIVERSAL::isa ( VAL, TYPE )
  64.  
  65. C<isa> returns I<true> if the first argument is a reference and either
  66. of the following statements is true.
  67.  
  68. =over 8
  69.  
  70. =item
  71.  
  72. C<VAL> is a blessed reference and is blessed into package C<TYPE>
  73. or inherits from package C<TYPE>
  74.  
  75. =item
  76.  
  77. C<VAL> is a reference to a C<TYPE> of perl variable (er 'HASH')
  78.  
  79. =back
  80.  
  81. =item UNIVERSAL::can ( VAL, METHOD )
  82.  
  83. If C<VAL> is a blessed reference which has a method called C<METHOD>,
  84. C<can> returns a reference to the subroutine.   If C<VAL> is not
  85. a blessed reference, or if it does not have a method C<METHOD>,
  86. I<undef> is returned.
  87.  
  88. =back
  89.  
  90. These subroutines should I<not> be imported via S<C<use UNIVERSAL qw(...)>>.
  91. If you want simple local access to them you can do
  92.  
  93.   *isa = \&UNIVERSAL::isa;
  94.  
  95. to import isa into your package.
  96.  
  97. =cut
  98.