>>>>> "D" == Dave Thomas <Dave / thomases.com> writes:

D> I don't know if it's necessary, but you _could_ have [g]sub! and
D> cho[m]p! always return the string, and set $& to whatever was
D> changed. If $& is nil, then no change was made.

 About $&, I've in ruby-man-1.4 :

  $& 

       The string matched by the last successful pattern match in this
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       scope. (Mnemonic: like & in some editors.) This variable is
       read-only.

 but if I try :

pigeon% ruby -e '"abcd".sub!("a", "e"); p $&'
"a"
pigeon% 

pigeon% ruby -e '"abcd".gsub!("a", "e"); p $&'
nil
pigeon% 

pigeon% ruby -e '/./ =~ "123"; /a/ =~ "123"; p $&'
nil
pigeon% 

 This is not really the last _successful_ pattern match, no ?



Guy Decoux