use UNIVERSAL qw(isa);
$yes = isa($ref, "HASH");
$io = $fd->isa("IO::Handle");
$sub = $obj->can('print');
UNIVERSAL is the base class which all bless references will inherit from, see the perlobj manpage
UNIVERSAL provides the following methods
REF is blessed into package TYPE
or inherits from package TYPE.
isa can be called as either a static or object method call.
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.
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.
UNIVERSAL also optionally exports the following subroutines
VAL is a blessed reference and is blessed into package TYPE
or inherits from package TYPE
VAL is a reference to a TYPE of perl variable (er 'HASH')
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.