my $ref; #### $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?