Ruby 参照の値渡し

マニュアルのStringの項でも、(そのものの名前は書いていないが、例が)最初の方に書いてるし、これを勘違いして間違うの恥ずかしいよね、と思ったら過去自分が書いたコードで以下のような間違いをしていたのを見つけた。
間違っていても影響がないところだったのでよかったが、我ながらショック・・・。

Rubyist Magazine - 値渡しと参照渡しの違いを理解する

class String (Ruby 2.2.0)

間違った例

a = 'aaa'
b = a
b.gsub!('a', 'b')
puts a, b #=> bbb bbb

こんな用途で使いたいなら、dup で OK。
instance method Object#clone (Ruby 2.2.0)