From your description things finally CLICK for me :-)

This is the Ruby version:

chomp;             # remove linefeed from end of $_
chomp("ow");       # remove "ow" from end of $_

Perhaps I have been tainted by Perl, this is what I
was expecting:

chomp;             # remove linefeed from end of $_
chomp("ow");       # remove linefeed from end of "ow"

See?  'Tis my own confusion.  Is this what Perl did
to me?  :-)

>>> aleksi.niemela / cinnober.com 6/13/00 10:15a >>>
> I was looking at the documentation for chomp and chomp! - and 
> $_ = "now\n"
> p chomp        # => "now"
> p $_           # => "now"
> p chomp "ow"   # => "n"
> p $_           # => "n"

Well, this all seem so right to me. You're expecting "now".chomp("ow") to
return "ow". I can't see the logic. Maybe you expect chomp to return what it
has possibly removed.

The Dave&Andy-version http://dev.rubycentral.com/ref/ref_c_string.html#chomp 
says:

  Returns a new String with the given record separator removed 
  from the end of str (if present). 

So it returns what's left of the string "now" removed "ow" from the end
leaves "n".

It doesn't say: "Returns the given record separator if it's removed from the
end of str."

	- Aleksi