From: Hugh Sasse Staff Elec Eng Date: 2000-10-20T18:25:36+09:00 Subject: [ruby-talk:5704] Re: variable variables On Fri, 20 Oct 2000, Guy N. Hurst wrote: > Hi, > > I am wondering if ruby has an equivalent to PHP's > variable variables. > > For example, in PHP, if you set $x="myvar", then In Perl, $x is now a symbolic reference, but these give you rope to hang yourself! > $$x will be equivalent to $myvar, so you could set This is like de-referencing in Perl. > $myvar indirectly by setting $$x: > > $x="myvar" > $$x="hi" #-> $myvar == "hi" > ?> If you do it through methods, you can use the fact that assignment makes 2 objects point at the same thing: irb(main):011:0> myvar = "hello" "hello" irb(main):012:0> x = myvar "hello" irb(main):013:0> x.sub!("hello","hi") "hi" irb(main):014:0> myvar "hi" irb(main):015:0> but assigning the new string to x would make x a new object. [...] > ---- > A similar feature in PHP is extract(), which takes an > associative array and puts the keys into the symbol table > with the associaated values as the contents of each newly > generated variable. > [...] If the keys are not strings, this would be a problem, I think. If they are strings, the way I thought to do it doesn't work. So I don't know. > > Thanks, > > Guy N. Hurst > Hugh hgs@dmu.ac.uk