From: Joel VanderWerf Date: 2006-07-13T05:52:09+09:00 Subject: Re: multiple level hash assignment equivalence to perl don mc wrote: > Is there a succinct way in ruby to do a multiple level hash assignement? > I am more > used to perl, which you can do something like > > > $hp->{level1}->{level2} = 3 > > even if the first and second level had never existed below. There's an autovivification trick, using the default proc of a hash (see ri default_proc): irb(main):002:0> pr = proc {|h,k| h[k]=Hash.new(&pr) } => # irb(main):003:0> h = Hash.new(&pr) => {} irb(main):004:0> h[1][2][3][4] = 5 => 5 irb(main):005:0> h => {1=>{2=>{3=>{4=>5}}}} -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407