You want a hash of arrays. Basically, you'll end up with a hash that looks like this:
$hash = {
'key' => ['one', 'two', 'three']
}
If you already have the hash that you show above, here's how to make a hash of arrays from your old hash:
while ( my ($key,$string) = each %oldhash ) {
my @elements = split /\s+/, $string;
$newhash{$key} = \@elements;
}
# You can now access data from it like this:
# print the first element in the array referred to by $key
print $newhash{$key}->[0], "\n";
# print out all of the elements for a given key
print "$key: ", join @{$newhash{$key}}, '-', "\n";
Also, try out
Ovid's
Data::Dumper::Simple. It's a clever module which prints out data dumps in a more descriptive way. Cheers. :)