From: Robert Klemme Date: 2011-01-11T17:16:00+09:00 Subject: Re: Nooby question : multidimensional arrays. On Mon, Jan 10, 2011 at 9:15 PM, Larry Evans wrote: > On 01/10/11 08:33, Robert Klemme wrote: > [snip] >> If you need that you could do something like https://gist.github.com/772827 >> > [snip] > Are you using a ruby newer than 1.8.7. I'm getting an error as shown here: > > ~/prog_dev/ruby/gist772827-61376303a967918b698bc0ddb50af26d6368438c $ > ruby mda.rb > mda.rb:20: syntax error, unexpected tIDENTIFIER, expecting tAMPER or '&' >  def []=(*idx, val) >                   ^ > mda.rb:41: syntax error, unexpected kEND, expecting $end > ~/prog_dev/ruby/gist772827-61376303a967918b698bc0ddb50af26d6368438c $ > ruby -v > ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux] Yes, you need 1.9ish Ruby for this to work. Reason is that 1.9 has extended pattern matching. With 1.8 you need to do it yourself: 09:14:49 ~$ irb Ruby version 1.8.7 irb(main):001:0> class X irb(main):002:1> def []=(*a) irb(main):003:2> v = a.pop irb(main):004:2> p a, v irb(main):005:2> end irb(main):006:1> end => nil irb(main):007:0> X.new[1,2,3]=4 [1, 2, 3] 4 => 4 irb(main):008:0> Sorry for not mentioning it. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/