From: Joel VanderWerf Date: 2005-03-20T14:57:19+09:00 Subject: Re: Variable scoping Xiangrong Fang wrote: ... > In most other languages, a variable defined in the "parent" name space > of a function will be visible to the function. This is not the case in > Ruby. Now my question is, how can I do this in the Ruby Way: > > def min(*params) > _min = nil > params.each do |p| > next if p.nil? > if _min.nil? or eval(p) < eval(_min) then > _min = p > end > end > return _min > end > a = 1 > b = 2 > c = 3 > d = 4 > puts min("a", "b", "c", "d") > > Purpose of this function is to get the NAME of the variable that has > minimum value. It's possible: a=b=c=d=nil (class << self; self; end).send :define_method, :min do |*params| _min = nil params.each do |p| next if p.nil? if _min.nil? or eval(p) < eval(_min) then _min = p end end return _min end a = 1 b = 2 c = 3 d = 4 puts min("a", "b", "c", "d") But why are you interested in the name of a variable?