in reply to dereference syntax

They are the same, you should use whichever you prefer. Some people think the arrow makes it clearer that you're dealing with a reference. Some people think it's visual noise.

You can also omit the arrow when dereferencing a nested array (eg: $s{a}[1]).

There is one thing to watch out for though. In your case, you have a hash called %x. If you had a hashref $x instead then the initial arrow would not be optional. You'd need to use either $x->{a}{b} or $$x{a}{b}.