in reply to A better understanding of array and hash references

Contrary to what you say, both
@$hr{a} = "hello";  # Hash slice.  Equiv to @h[0].
and
@$ar[0] = "hello";  # Array slice. Equiv to @a[0].
work for me, as they should.

ActivePerl v5.6.1 Win2k
ActivePerl v5.8.0 WinXP
perl v5.8.0 FreeBSD

It's true that %$hr{a} doesn't work, but why should it? It would be equivalent to %h{a} which is not valid Perl.

Of course, I don't know what you're using slices with just one element. The following work just as great:
$$hr{a} = "hello";  # Same as $hr->{a}. Equiv to $h{a}.
and
$$ar[0] = "hello";  # Same as $ar->[0]. Equiv to $a[0].

Update: Added to the node.