From: Joel VanderWerf Date: 2005-05-26T06:58:50+09:00 Subject: Re: Multilevel hash aartist wrote: > With perl it's easy to write: > > $Q{$date}{$song_played} += 1 > > How I can accomplish the same thing with ruby? > > Thanks! > > http://pleac.sourceforge.net/pleac_ruby/index.html didn't help much > here. > irb(main):001:0> mh = Hash.new {|h,k| h[k] = {} } => {} irb(main):002:0> mh[1][2] = 3 => 3 irb(main):003:0> mh => {1=>{2=>3}} You can also do variable-level hashing: irb(main):006:0> pr = proc {|h,k| h[k] = Hash.new(&pr) } => # irb(main):007:0> vh = Hash.new(&pr) => {} irb(main):008:0> vh[1][2][3][4] = 5 => 5 irb(main):009:0> vh => {1=>{2=>{3=>{4=>5}}}} (This is ruby-talk folklore!)