IMO, if you really want clean in the code readability sense, stop trying 
to transliterate code between languages, and go the usual way:

foo = [ 'something', 'or', 'other']

def mfoo(arg)
  # do stuff with a copy of arg.
  return arg
end

foo = mfoo(foo)

If you really want foo clobbered, I'd possibly either add an Array#mfoo! 
method, or add it as a singleton to foo. Yes, I'm -that- evil ;) And 
resentful of clobbering objects...

David