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 ( TYPE )
    "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 ( METHOD )
    "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 ( [ REQUIRE ] )
    "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

UNIVERSAL::isa ( VAL, TYPE )
    "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".

UNIVERSAL::can ( VAL, METHOD )
    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.