I'm not sure if this is a bug. I'm creating a hash like this:

    name_key = "name"
    hash = Hash[name_key, "Test"]
    # => {"name"=>"Test"}

    hash.keys[0].object_id == name_key.object_id
    # => false

Why does Hash::[] dup the given strings and create new instances?
(CSV#to_hash uses this, so each row initializes new strings for the same
header keys.) It seems like a lot of unnecessary overhead.

Andrew Vit