in reply to Book Code

I don't know whether this is a typo on your part, or a misprint in the book, but In think you will need to put parentheses instead of curly braces here:
my %hash = ( # note parenthesis open here Mouse => {Index => 0, Value => 'Jerry'}, Cat => {Index => 1, Value => 'Tom'}, Dog => {Index => 2, Value => 'Spike'} ); # note parenthesis close here
The output then becomes:
HASH(0xfd578) {'Value'} <= Mouse HASH(0xfd494) {'Value'} <= Cat HASH(0x10e080) {'Value'} <= Dog

Liz