Glenn Parker said:
>   2. Assign the eval-initialized variable to a "visible" variable.
>
>      eval "y = 2"
>      y = eval "y"  # make "y" visible afterwards
>      print "#{y}\n"

Actually, you don't even have to actually assign anything to y, you just
need to make sure that the Ruby interpreter sees an assignment to y before
the print.  It's a subtle distinction, but consider the following code:

  eval "y = 2"
  y = 0 if false
  puts y         # => 2 (not 0)

-- 
-- Jim Weirich     jim / weirichhouse.org    http://onestepback.org
-----------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)