Constants point to an object.  The object that a Constant points to
(once set) cannot be changed.  This is different than saying the object
that is pointed to by the Constant cannot be changed.  If you want to
protect an object that is pointed to by a Constant you can always do
this (in the ARGV example):

ARGV.freeze

That prevents any changes from taking place on the object, but it is not
the default.  And remember, once an object is frozen, is cannot be
'thawed'.

-rich

> -----Original Message-----
> From: Mike Campbell [mailto:michael_s_campbell / yahoo.com]
> Sent: Sunday, April 14, 2002 1:47 PM
> To: ruby-talk ML
> Subject: RE: Silence warning
> 
> > > ARGV is a global variable that is prepopulated for you with the
> > > command line arguments...  why would you want to change the
contents
> > > of that variable?  I personally treat ARGV as a readonly
> > > variable... and now that I think about it, it'd be really cool if
a
> > > security level of 1 or greater made that read only.  ::hint hint::
:~)
> >
> > Hmm. I commonly extract arguments from ARGV using ARGV.shift.
> > Maybe I should consider this 'bad' practice and change my ways.
> 
> Isn't [the thought of being able to modify] ARGV counter to the idea
> constants
> begin with caps?  or have I missed something obvious?