From: Joe R. MUDCRAP-CE
WHY is var line getting changed by operations on var base_name? Isn’t
‘base_name = line’ supposed to create a copy? ‘=’ in this
case seems to be acting like an alias or something.
Variables point to objects, they do not “hold” or “contain” them.
What you are suggesting is that:
me = Person.new
would create a new Person object, and then duplicate it before assigning
to ‘me’, or that:
my_really_long_array_name = [ 1, 2, 3 ]
short_name = my_really_long_array_name
would result in two different copies of the array.
That’s the opposite of how it works