in reply to (another) HoH question

Hash: 123->abc 456->abc 456->xyz 789->abc

But...

use strict; use warnings; use 5.010; use Data::Dumper; my %hash = ( 123 => 'abc', 456 => 'abc', 456 => 'xyz', 789 => 'abc', ); print Dumper(\%hash); --output:-- $VAR1 = { '456' => 'xyz', '123' => 'abc', '789' => 'abc' };

The corollary to "keys can have only one value" is "a hash cannot have duplicate keys". If a hash could look like this:

Hash: 123->abc 456->abc 456->xyz 789->abc

...how would perl know what value to return when you said, "Give me the value associated with the key '456'?

Replies are listed 'Best First'.
Re^2: (another) HoH question
by muba (Priest) on Jun 23, 2012 at 19:53 UTC

    "a hash cannot have duplicate keys". If a hash could look like this: (...snip...) ...how would perl know what value to return when you said, "Give me the value associated with the key '456'?

    True. But a hash value can be an array ref, so in a way you can associate multiple values to a single key. Which, I think, is what is needed here.