Hash References


Similarly to the Array references one can create references to Hashes as well.

``` my $phones_ref = \%phones; ```

``` Hash Hash Reference %phones %{ $phones_ref } $phones{Foo} ${ $phones_ref }{Foo} $phones_ref->{Foo} keys %phones keys %{ $phones_ref } ```

Using the print function to print out the content of an Array was quite OK. Printing a Hash was a disaster. The same happens once you dereference a reference to an array or hash.


examples/references/hash_reference.pl
#!/usr/bin/env perl
use strict;
use warnings;

my %phones = (
    Barney  => 123,
    Fred    => 456,
    Wilma   => 789,
);
my $phones_ref = \%phones;

print $phones_ref, "\n";             # HASH(0x703fed1)
my @names = sort keys %$phones_ref};
print "@names\n";                    # Barney Fred Wilma

print "$phones{Fred}\n";             # 456
print "$phones_ref->{Fred}\n";       # 456