Hi, Please excuse the newbie question, but I am confused by something I see with sub!() (this seems to be true with other "!" operations as well): irb(main):001:0> string1 = "hello" => "hello" irb(main):002:0> string2 = string1 => "hello" irb(main):003:0> string2.sub!(/e/,"a") => "hallo" irb(main):004:0> string2 => "hallo" irb(main):005:0> string1 => "hallo" irb(main):006:0> Why is string1 also changed when sub!() is being performed on string2 ? Shouldn't sub!() only be acting on the string it is being called on? Thanks, Martin