in reply to Hash Printing reveals Hash Memory Location
You have:
my %words = {};
You want:
my %words = ();
Or better yet:
my %words;
Essentially in that first line, you're adding an entry to the hash where the key is a reference to an anonymous second hash, and the value is undefined. Because you can't use references as hash keys, the reference is stringified (which looks like a memory location).
In other words, my %words = {}; is basically a shorthand for:
my %words; my $ref_to_anon_hash = {}; $words{ $ref_to_anon_hash } = undef;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Hash Printing reveals Hash Memory Location
by perlStuck (Sexton) on Feb 03, 2012 at 01:08 UTC |