$Person_ary = ('A'..'D').to_a
#=> ["A", "B", "C", "D"]

ary2 = $Person_ary[0..-1]
go(ary2)
def go(per_ary)

combi = per_ary.combination(2)
combi.each_with_index do |p_ary, i|
# per_ary[0] → p_ary[0]は同じobject_id

per_0 = p_ary[0]
何でこの代入が(値は'A')、同じオブジェクトやねん!
これぐらい別のオブジェクトにしろよ

$Person_ary[0] → ary2 → per_ary[0]
→ p_ary[0] → per_0
なんと、これらがすべて同じobject_id

per_0 << 'B'

per_0には'A'が入っているが、
最後にこれらがすべて、'AB'に変わってしまう!

ここまですべてが同じオブジェクトだって、誰がわかる?