in reply to hash defined?

I would say first if you want to see if a key in a hash is defined, use defined and not exists.

However I don't get such a warning with your code whether the key is defined or not. Is that right?