From: "Morris, Chris" Date: 2002-03-28T04:39:45+09:00 Subject: RE: Variable variables in Ruby? > > $_foobar = "Hello, world" > > x = "foo" > > y = "bar" > > > > baz = eval("$_#{x}#{y}") > > > > puts baz # prints Hello, world > > Thanks - but I know this one. I want to do it without eval() I was trying to whip up the answer using .send as in: irb(main):017:0> class Test irb(main):018:1> attr_accessor :a irb(main):019:1> end nil irb(main):020:0> t = Test.new # irb(main):021:0> t.send("a") nil irb(main):022:0> t.a = [] [] irb(main):023:0> t.send("a") [] irb(main):024:0> ... but what do I send the message to for a global var?: irb(main):002:0> $_foobar = "test" "test" irb(main):003:0> x = "foobar" "foobar" irb(main):008:0> send("$_" + x) NameError: undefined method `$_foobar' for # from (irb):8:in `send' from (irb):8 ... who 'owns' the global var?