From: dblack@... Date: 2006-04-02T23:46:05+09:00 Subject: Re: I can't get hash list params working Hi -- On Sun, 2 Apr 2006, Ashley Moran wrote: > Hi > > I must be doing something stoopid here. Can anyone explain why I get an > error on the last line of this irb session? > > irb(main):014:0> def a(a=nil,*b) > irb(main):015:1> puts a.inspect > irb(main):016:1> puts b.inspect > irb(main):017:1> end > => nil > irb(main):018:0> a(1 => "one", 2 => "two") > {1=>"one", 2=>"two"} > [] > => nil > irb(main):019:0> a(1 => "one", 2 => "two", 1) > SyntaxError: compile error > (irb):19: parse error, unexpected ')', expecting tASSOC > from (irb):19 > from :0 > > > Surely the output should be > {1=>"one", 2=>"two"} > [1] > ? You can only use the "magic" hash argument if it's the last thing in the arglist. If it isn't, you have to write it like a regular hash: a({1 => "one", 2 => "two"}, 1) David -- David A. Black (dblack@wobblini.net) Ruby Power and Light, LLC (http://www.rubypowerandlight.com) "Ruby for Rails" chapters now available from Manning Early Access Program! http://www.manning.com/books/black