Thank you very much, Matz... as always, we are indebted to you. > > In 1.4, multiple assignment > > a, b = c > > invokes c.to_a internally if a is not an array. I guess you mean if c is not an array. >1.6 multiple > assignment does not call to_a, but if c has to_ary method, invoke it > to convert c into an array. > So there was some kind of problem with calling to_a... has this been discussed on ruby-talk? > rescue clause for method body > > def foo > ... > rescue LoadError > STDERR.print "can't load\n" > end Ahh! I assume (I will verify this later) that it honors the else, the => notation, the ensure, and the retry? > > |> * syntax enhanced, e.g. > |> > |> a,b = File::split "foo/bar" > | > |I see that this doesn't work in my 1.4.3 -- I thought this would have > |worked long ago. > > Have you tried? I found it was not working. So I fixed it in 1.6. Yes, I did try this and found it broken in 1.4, but not until you had already fixed it. :) > No, yield has the evaluated value of the block, which is the value > from last evaluated expression in the block. I see. So a block always returns a value? I will check this also. > def nil.foo > print "foo\n" > end > nil.foo I did not know this was a new feature. > def 1.foo > print "1\n" > end > 1.foo > > is not possible (yet). Good heavens. Of course, this could be useful for Pentium Mode, so we can make 2 + 2 = 3.9 while all other addition works fine. :) Sorry, that is an obsolete reference to the old Pentium bug from '96 or so. > > |> * regex option /p renamed to /m > | > |Why? > > I chose /p to stand for POSIX, but I was misinformed. /p behavior was > not related to POSIX at all. So I changed that to /m (multiline). Well, I was fooled also. :) Thanks very much, Matz... Hal Fulton