From: Matt Brooks Date: 2009-09-22T00:09:55+09:00 Subject: Incrementing variable names in a loop? I have a function write_log that takes in a string and it prints to console and to a logger. I need to loop through all variables found in an index of an array as a hash and print them. This list of variables to iterate through is of variable length(num_bins). The list has variable names(hash keys) that were created by incrementing the number at the end of the variable name. There is a little more to the problem in the fact that the signals array contains objects which have a method_missing defined to handle these variables by looking them up in a hash. So when signals[0].bin_0 is called, it looks in the object of the first index of the signals array for a method called bin_0, it doesn't exist, so I defined the code in the method_missing method to simply look up that name, bin_0, in a hash and return that value. Problem is when I create this variable with an incrementing name, I can't seem to append it to the end of the signals[0], because I can't do #{} with another #{} inside of it. I would like this: write_log("Bin_\##{index}: #{signals[0].#{variable}}") How can I accomplish this?! Dereference a variable within a variable that is being dereferenced. index = 0 while index < num_bins variable = "bin_#{index}".to_sym write_log("Bin_\##{index}: #{signals[0].#{variable}}") index += 1 end SHOULD: create calls to signals[0].bin_0 signals[0].bin_1 signals[0].bin_2 etc until num_bins reached... Thanks a lot for your help, Matt -- Posted via http://www.ruby-forum.com/.