in reply to A better understanding of array and hash references

I also highly recommend using Data::Dumper as mentioned above.

What I find helpful is to use the longhand:

push @{$hr->{a}}, 'hello'; print "${$hr->{a}}[0]\n";

I find that this give my eye a better chance to see that some derefencing is going on (I'm old!).

Hang on in there! :-)