From: "Wolfgang Nádasi-Donner" Date: 2007-01-27T20:35:11+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. I 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