Hi -- On Mon, 29 Aug 2005, Trans wrote: > irb(main):006:0> def r > irb(main):007:1> @r ||= Hash.new({}) > irb(main):008:1> end > => nil > irb(main):009:0> r[:a] > => {} > irb(main):010:0> r[:b][:c] = 10 > => 10 > irb(main):011:0> r > => {} > irb(main):012:0> r[:b] > => {:c=>10} > irb(main):013:0> > > Please explain how r is empty but r[:b] exists. Thank You. r[:b] doesn't exist, so instead, you get the hash's default value (which is what is returned for non-existent keys). David -- David A. Black dblack / wobblini.net