Hi, In message "[ruby-talk:03385] Re: chomp!" on 00/06/13, Conrad Schneiker <schneik / austin.ibm.com> writes: |So is there some grand overall plan, principle, reasoning, or system to all of |these sorts of things? It's natural for me. str.xxx Returns a copy of a string, no matter if modification happens. str.xxx! Modifies a string. Returns nil if no modification happens. xxx Returns a copy of a string refered from $_, also assign the copy to $_ (currently always - may be changed in the future). xxx! Modifies a string refered from $_. Returns nil if no modification happens. xxx = {sub, gsub, chop, chomp} matz.