From: Clemens Hintze Date: 2000-01-12T18:00:13+01:00 Subject: [ruby-talk:01134] Re: Class variables... David Suarez de Lis writes: > Hi there, > > matz wrote: > > Ruby does not have the class variables (yet). > > [...] > I thought Capital case identifiers were constants... Unless > Population is a constant Array of 1 value, but the value inside the > array is variable... ? Your are right. The variable is a constant. That means the content of the variable. All variables in Ruby contain references to a certain object (ok, almost all ;-). You cannot assign a new value (means reference) to the variable, but you could, of course, send a message to the referenced instance to modify itself. [...] > I see, interesting although a bit complicated (according with \cle's > examples...) does this add a new object to a program (or, better > said, a new object per object we create)? Yes and no, it depends on what you are doing! You have to assign a Proc instance to the 'define_finalizer' method. In your simple example (only decrementing 'Population') we could reuse the same Proc instance ever and ever again. But as I pass the name of the Person to the Proc instance, it is necessary to create a new finalizer instance with every new Person instance. First it has also disturbes me, but after a while I have found, that I need this feature *very* seldom (only once in all my scripts written so far [except for samples like yours, of course] ;-) [...] > Thanks, nice work with the language, > d@ \cle [...]