##
$ref->{key};
%$ref->{key};
%{$ref}->{key};
$$ref{$key};
####
$ref->[0];
@$ref->[0];
@{$ref}->[0];
$$ref[0];
####
$$ref = 1;
$$ref;
####
my $ref = POLYMORPH->new( qw( key in some init values) );
$ref->{key}; # might return 'in'
$ref->[0]; # might return 'key'
$ref; # depends on implementation
####
How can I make a single reference that can be
LEGALLY DEREFERENCED as a hash ref, array ref,
AND a scalar ref, with the resulting operation
tied to a class implementation?