in reply to Unforseen OO conducts

$object->{a}->{var2} is a reference. When you assign $object->{b}->{var1} = $object->{a}->{var2}; you are making the two references refer to the same thing. Then, when you do $object->{a}->{var2} = $dummy; you are making that one refer to something else.

If you want ...b... to refer to ...a..., then you need to make it a reference:

$object->{b}->{var1} = \$object->{a}->{var2};
but then you will have to add a layer of scalar dereferencing when getting the values out. The key point here is that there's a difference between two references referring to the same thing, and one reference referring to another reference.

What you really want is an alias, but you can't do that except on top-level, non-lexical variables.


Caution: Contents may have been coded under pressure.