sub type { my $obj = shift; return $obj->isa('HASH') ? 'HASH' : $obj->isa('ARRAY') ? 'ARRAY' : $obj->isa('SCALAR') ? 'SCALAR' : die 'Not HASH, ARRAY or SCALAR'; } print type( bless \a ), "\n"; print type( bless [a] ), "\n"; print type( bless {a=>b} ), "\n"; print type( bless \*STDOUT ), "\n\n";