UNIVERSAL(3)

NAME
UNIVERSAL - base class for ALL classes (blessed references)

SYNOPSIS
    $io = $fd->isa("IO::Handle");
    $sub = $obj->can('print');
    $yes = UNIVERSAL::isa($ref, "HASH");

DESCRIPTION
"UNIVERSAL" is the base class which all bless references will inherit from, see the perlobj manpage

"UNIVERSAL" provides the following methods "isa" returns true if "REF" is blessed into package "TYPE" or inherits from package "TYPE".

"isa" can be called as either a static or object method call. "can" checks if the object has a method called "METHOD". If it does then a reference to the sub is returned. If it does not then undef is returned.

"can" can be called as either a static or object method call. "VERSION" will return the value of the variable "$VERSION" in the package the object is blessed into. If "REQUIRE" is given then it will do a comparison and die if the package version is not greater than or equal to "REQUIRE".

"VERSION" can be called as either a static or object method call.

The "isa" and "can" methods can also be called as subroutines "isa" returns true if one of the following statements is true.
    "VAL" is a reference blessed into either package "TYPE" or a package which inherits from package "TYPE". "VAL" is a reference to a "TYPE" of Perl variable (e.g. 'HASH'). "VAL" is the name of a package that inherits from (or is itself) package "TYPE".
If "VAL" is a blessed reference which has a method called "METHOD", "can" returns a reference to the subroutine. If "VAL" is not a blessed reference, or if it does not have a method "METHOD", undef is returned.

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.