$ perl merge_keys.pl cyclic_test2.yml $VAR1 = { 'key2' => { 'everyday' => 'apple', 'Z' => 'key2.Z', 'A' => [ { 'zero' => '00' }, { 'Z' => 'key1.Z', 'subkey_b' => 'qwer', 'subkey_a' => 'asdf', 'zero' => 0 }, { 'A' => $VAR1->{'key2'}{'A'}, 'Z' => 'key2.Z', 'everyday' => 'shuffling', 'X' => 1, 'zero' => 0, 'Y' => 3000 } ], 'X' => 1, 'zero' => 0, 'Y' => 2 }, 'key1' => { 'subkey_b' => 'qwer', 'Z' => 'key1.Z', 'subkey_a' => 'asdf', 'zero' => 0 }, 'key0' => { 'zero' => 0 }, 'key3' => { 'A' => $VAR1->{'key2'}{'A'}, 'subkey_b' => 'qwer', 'subkey_a' => 'foo', 'X' => 1, 'Y' => 2, 'everyday' => 'apple', 'Z' => 'key1.Z', 'subkey_c' => 'bar', 'zero' => 0, 'deeper' => { 'challenger' => 'deep', 'zero' => 0 } } };