in reply to Multiple values assigned to same key in hashes

I'm sorry but your post formating is rather illegible. Can you please re-format using <c>...</c> tags around code and <p>...</p> tags for paragraphs of text.

Having said that, the code you have is a little odd but it does work for me. I've tidied it up a bit, moving the lexical (my) variables into the loop where they are used

use strict; use warnings; use diagnostics; use Data::Dumper; my %hash; my @data = ("foo",1, "bar",2, "foo",3, "baz",4); while (my $key = shift @data) { my $value = shift @data; push @{$hash{$key}}, $value; # push the value on the array } print Dumper \%hash

and here is the perfectly good output

$VAR1 = { 'bar' => [ 2 ], 'baz' => [ 4 ], 'foo' => [ 1, 3 ] };
This output is telling you that the hash has three keys, and each one holds an array reference (thus the [ ]). One of them (foo) holds two values in the referenced array, the others a single value. What are you seeing?

Cheers,
R.

Pereant, qui ante nos nostra dixerunt!