in reply to Maintaining Contained Object Attributes

Well, you can use: @{$self}{keys %{$tn}}= \( @{$tn}{keys %{$tn}} ); and then changing ${$self->{some_key_from_tn}} will also change $self->{tn}->{some_key_from_tn}. This can be nice if you have a generic accessor methods (perhaps autoloaded) that could just check if the value is a scalar reference and set/get the referenced scalar in such cases.

Although the guts of Perl support having two hash values be aliases of each other (AFAICT), the language doesn't provide a way of achieving that (AFAICT). So I suppose you could write some XS code to do what you want.

So you might be better off doing what davorg suggested. However, even if I went with the accessor route, I'd just have the "fetch" part get the attribute from the contained object rather than keeping two copies in sync.

        - tye (but my friends call me "Tye")