in reply to Deep-bless a HASH

I may divert a little bit here, but usually when your objects have to deal with more than one or two levels of depth that indicates me that code smells. Your system would either hard to change or fragile.

What I'd do is first ask myself why the object A has to dig to find stuff from object B and if and only if my model is correct ( dependencies are correct, have cohesion in the classes, etc... ) then I'd use the Observer pattern. That way you break the dependency between objects