Consider the following code:
@person = { :email => 'hello@example.com' }
temp = @person.clone
temp[:email].upcase!
p temp[:email] # => HELLO@EXAMPLE.COM
p @person[:email] # => HELLO@EXAMPLE.COM, why?!
# But
temp[:email] = 'blah@example.com'
p @person[:email] # => HELLO@EXAMPLE.COM
Ruby version is: "ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]".
I have no idea why is it happening. Can anyone help, please?