From: Chris Date: 2002-11-29T00:12:02+09:00 Subject: Re: call-by-reference problem again Hello, ----- Original Message ----- [snip] ruby is not created with ability to modify parameters in mind. so you must not rely on this programming paradigm. use arrays or multiple return values or something other ---------------------------- Huh? Do you mean that Ruby wasn't created with the ability to modify parameter *variables*, or the objects passed in as parameters? You can certainly modify the objects (to the extent that their methods allow). In the original email (and I hope you are viewing this in a monospaced font), the problem was simply (assuming 'str' referenced the object "hello"): First, "hello".upcase returns a *new* string object | | +-> str = str.upcase <--+ | | +-- Then the *local* variable 'str' is set to this new string, thus losing all reference to the original string. Parameters are local variables. Perhaps the confusion is that *blocks* don't work this way (I think). Chris