From: Ray Pereda Date: 2008-08-15T06:15:40+09:00 Subject: tricky hash initialization h = Hash.new {|h,k| h[k] = {} } This is one level deep defaults to a fresh new hash. h = Hash.new {|h,k| h[k] = Hash.new{ |h2,k2| h2[k2] = {} } } This is two levels deep initialization to a fresh new hash. How do I this for arbitrarily deep hashes? h["a"]["b"]["c"] = 3 #=> {"c"=>3} I'm using this to build very clean implementations of state machine building algorithms. Your help is very much appreciated. -Ray -- Posted via http://www.ruby-forum.com/.