Sun, 23 Feb 2003 21:46:56 +0900, Michael Bruschkewitz <brusch2 / gmx.net> pisze: > So, when there is a function: > def fu h, key, o > e = h[key] > e.val = f1(o) > e.val2 = f2(o) > end > .... these will (under most preconditions) change the content of the > hash, and including "h[key]=e" at the end will be unnecessary - because > the existence of "val=" and "val2=" grants there is an object receiver. > Right? Yes. e was at key in h at the beginning, and it's still there at the end. It doesn't matter that the contents of e changed - it's the same e all the time. Almost all languages work that way, I'm surprised that people have problems with this. Only C, C++, Pascal and in part Perl are different (they have mutable objects passed by value). -- __("< Marcin Kowalczyk \__/ qrczak / knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/