From: Peter Szinek Date: 2006-11-12T02:42:26+09:00 Subject: eval question Hi, I am setting up a few variables based on user input with the following code snippet: ================================== vars = %w{a b c} vars.each do |var| print "#{var} = " val = gets eval("$#{var}=#{val.chomp}") end #use a, b, c here for something ================================== What I don't like about this code is the use of global variables. However, I have to use them - or otherwise a,b,c will be already out of scope at the place I need them. Another possibility would be to use constants, i.e. vars = %w{A B C} which would work well - however, since I am repeating the process more times, from the second iteration on I am getting warnings that A, B, C etc were already initialized, which is not nice. I guess yet another possibility would be to wrap a class around this stuff and use instance_eval or something like that - but a class that serves solely this purpose looks to heavy to me... Any other ideas? TIA, Peter __ http://www.rubyrailways.com