<p>In Perl, an object is just a reference to any of the basic Perl data types that has been blessed into a particular class.  When you use the ref() function on an unblessed reference, you are told what data type the reference points to.  However, when you call ref() on a blessed reference, you are returned the name of the package that reference has been blessed into.  </p>

<p>I want to know the actual underlying type of the blessed reference.  How can I determine this?</p>

And my first thought on this was: "Objects in Perl are always hash refs, so what the hack?"
But, Scalar::Util::reftype is the answer. Thanks for putting the question here.
Here is a code snippet to prove this.. (in case it is of any use to anyone).
```
$> perl -e 'use strict; use warnings "all";
            my $x = [1]; bless ($x, "ABC::Def");
            use Data::Dumper; print Dumper $x;
            print ref($x) . "\n";
            use Scalar::Util "reftype"; print reftype($x) . "\n"'`
```
Output:
```
$VAR1 = bless( [
                 1
               ], 'ABC::Def' );
ABC::Def
ARRAY
```