Short answer: because you have not used strict like you should have done.
Long answer: One is a hash and the other is a hash reference. They are two different variables, the fact that your code has chosen to give them the same name is irrelevant (and obviously confusing), so don't do that unless you have a very good reason for doing so.
🦛
In reply to Re: Hash syntax
by hippo
in thread Hash syntax
by mvanle
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |