NAME
UNIVERSAL - Default general behaviour for all objects.
SYNOPSIS
use UNIVERSAL;
if($obj->isa('IO::Handle')) {
...
}
$func = $obj->can('some_method_name');
$class = $obj->class;
if($var->is_instance) {
...
}
DESCRIPTION
The UNIVERSAL package defines methods that are inherited by all other classes. These methods are
- isa( CLASS )
-
isareturns true if its object is blessed into a sub-class ofCLASSisais also exportable and can be called as a sub with two arguments. This allows the ability to check what a reference points to. Exampleuse UNIVERSAL qw(isa); if(isa($ref, 'ARRAY')) { ... } - can( METHOD )
-
canchecks to see if its object has a method calledMETHOD, if it does then a reference to the sub is returned, if it does not then undef is returned. - class()
-
classreturns the class name of its object. - is_instance()
-
is_instancereturns true if its object is an instance of some class, false if its object is the class (package) itself. ExampleA->is_instance(); # Flase $var = 'A'; $var->is_instance(); # False $ref = bless [], 'A'; $ref->is_instance(); # True
NOTE
isa and can are implemented in XS code. can directly uses perl's internal code for method lookup, and isa uses a very similar method and cache-ing strategy. This may cause strange effects if the perl code dynamically changes @ISA in any package.
AUTHOR
Graham Barr <Graham.Barr@tiuk.ti.com>
COPYRIGHT
Copyright (c) 1995 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
REVISION
$Revision: 1.2 $