[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03271] Re: BUG or something?

From: Wayne Scott <wscott@...>
Date: 2000-06-11 19:30:50 UTC
List: ruby-talk #3271
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.



In This Thread