#construct a ref to an anonymous hash: my $ref = {andy => 'likes cake'}; #note *curly* brackets #another way my %hash = (andy => 'likes beer too'); $ref = \%hash; #normal brackets of course #get at one specific value print $ref->{andy}; #another way print $$ref{andy}; #get all the keys print keys %$ref; #get all the values print values %$ref; #get key/value pairs while (my ($key, $val) = each %$ref) {print "$key = $val"} #copy the hash into a new hash my %newhash = %$ref #if you use the -> syntax with references to references, then you can omit the ->s, after the first one, like this: my $ref = { andy => {eats => 'cake'}}; print $ref->{andy}{eats}; #note only one -> necessary