From: Austin Ziegler Date: 2005-06-17T01:17:25+09:00 Subject: Re: hash of hashes by default On 6/16/05, James Edward Gray II wrote: > On Jun 16, 2005, at 11:07 AM, Belorion wrote: >> I want a Hash of Hashes. Furthermore, I want it so that if a key >> for the first has does not exist, the default value is a new >> hash. > irb(main):001:0> foo = Hash.new { |hash, key| hash[key] = Hash.new } > => {} > irb(main):002:0> foo["ii"]["jj"] = "Hello World." > => "Hello World." > irb(main):003:0> foo["ii"] > => {"jj"=> "Hello World."} > irb(main):004:0> foo["ii"]["jj"] > => "Hello World." An infinite variation of this is a two liner. hinit = proc { |hash, key| hash[key] = Hash.new(&hinit) } foo = Hash.new(&hinit) foo["ii"]["jj"]["kk"] = "Hi, James!" require 'pp' p foo -austin -- Austin Ziegler * halostatue@gmail.com * Alternate: austin@halostatue.ca