From: craig duncan Date: 2000-12-24T01:34:14+09:00 Subject: [ruby-talk:8010] Variable's "value" In some of the previous "Hash access method" threads i've seen this sort of thing: a = "#{b}" to assign the value of the variable b to a. My understanding is that `#{var}' is string interpolation and that this would be a rather indirect way of getting the value of `b'. The doc. seems to say that string interpolation works by eval'ing the variable, so the direct (and equivalent) way of doing this would be: a = eval 'b' Is this, in fact, the case? Are they exactly equivalent? And therefore eval is to be preferred in this instance? Next question: when `b' (above) is assigned to by, e.g. b = 'c', exactly what method is being called by eval? Is it `to_s'? and therefore, for string object `b' would all these be equivalent? a = "#{b}" <=> a = eval 'b' <=> a = b.to_s (I'm assuming that: b = 'c' creates object `b' as an instance of class String. . . which i certainly _hope_ is correct :) Answers/Comments/Clarifications? craig