If you get a warning from Perl that you don't understand then it's always worth checking the full description in perldiag. In this case, it says:

Using a hash as a reference is deprecated
(D deprecated) You tried to use a hash as a reference, as in %foo->{"bar"} or %$ref->{"hello"} . Versions of perl <= 5.6.1 used to allow this syntax, but shouldn't have. It is now deprecated, and will be removed in a future version.

I assume that the fact it used to work has something to do with the internal representation of hashes (and also arrays) as something similar works in C.

But as the warning says, this usage is deprecated. And if something is deprecated, you shouldn't use it.