[resent because I think the last copy failed...] From: Mathieu Bouchard <matju / CAM.ORG> > setting $= to true changes the hash code calculation so that "foo"'s > hashcode will actually be the usual "FOO" hashcode. this means, although > keys are stored in their original form, all hash codes are computed after > a conversion to uppercase. I am new to Ruby and this brings up a question I have had lately. Why were the 'magic' global variables copied from perl? And $= which is a new one. The ones that seem to be problems to me are: $= $/ $\ $, $; $> The problem with these is that the are global and affect everything running under the current interpreter. If I write a script that uses several different libraries and then change $/ (input rec sep) for some loop, then the odds are that I will break one of the libraries that assume that $/ is set to its default value. If fact any time of change one of these values I make it likely that I will break any third party code I add to my application. Perl as an hack/accident of history that let you limit the side affects of these features. In perl I can do the following: { open(F, "file"); local($/) = undef; # read whole file $_ = <F> close(F) } # $/ returns to previous value here This dynamic scoping for globals help for these cases. Is there any way to limit the impact on these variables in Ruby? Of course in Ruby I can just do this: $_ = File.open("file").read # much cleaner! The only merit I can find for these variables is they make the command line options very easy to impliment and let you write small one line programs. Some background. I have been heavily programming in perl for over 10 years and consider myself an expert at perl. Lately I have been looking at other programming languages because perl code is often too ugly. Many people have be preaching the virtues of Python, but I just don't see it. The code is pretty, but after a week of writing programs in it I still find myself constrained. I found Ruby last week and found it a joy to program write off the bat. In fact even with my considerable perl experience I have found it easier to write code in Ruby. That is impressive to me. -Wayne Wayne Scott WMT Architecture - Intel Corp. wscott / ichips.intel.com Work #: (503) 613-5063 Disclaimer: All views expressed are my own opinions, and not necessarily those of Intel Corporation.