I'm not sure what you are saying your problem is,
and I may have this wrong, but since no one else
has answered, I'll have a go.
To generate a new, anonymous hash that is a
copy of an existing named hash, use {}.
Put the {} brackets around some expression that
can be seen by perl as a hash, eg:
{ %OBU_hash };
If you assign the above to a scalar, you are
assigning a reference to the new copy, eg.
$OBU_objects[$OBU_idx++] = { %OBU_hash };
stores different hashes in each @OBU_objects
element, whereas
$OBU_objects[$OBU_idx] = \%OBU_hash;
stores a reference to the same hash in each
@OBU_objects element.
If this isn't relevant, please try to reduce your
problem further.
hth.