From: "Wolfgang Nádasi-Donner" Date: 2007-01-27T20:40:05+09:00 Subject: Re: pass by reference? >>>>> Code >>>>> def modifying(a_param) a_param = "hi" end def modifying2(a_param=a_value) a_param = "hi" end def modifying3(a_param) a_param[0..-1]= "hi" end a_value = "low" modifying a_value case a_value when "hi" puts "Passed by reference" when "low" puts "Passed by value" else puts "Passed away" end a_value = "low" modifying2 a_value case a_value when "hi" puts "Passed by reference" when "low" puts "Passed by value" else puts "Passed away" end a_value = "low" modifying3 a_value case a_value when "hi" puts "Passed by reference" when "low" puts "Passed by value" else puts "Passed away" end >>>>> Output >>>>> Passed by value Passed by value Passed by reference >>>>> EoE >>>>> I would name it somehow "call by assignment of value to local variable", because the value of the actual parameter is assigned to the local variable used as a formal parameter. except for "Fixnum" etc. this is a pointer to an object. If one changes the object itself, it will work like "by reference", otherwise only the local variable is affected, without having any effect to the outside world. Wolfgang N�dasi-Donner