http://qs1969.pair.com?node_id=543831


in reply to How to create HASH with multiple values per Key

As mentioned by Transient, you would take a reference to the second array and use it as the value of the hash, keyed by the values of the first hash:

use strict; use warnings; my @Property = qw(FolderProperty1 FolderProperty2 FolderProperty3); my %O_P = ( 'FolderObject' => \@Property );

Then whenever you wanted to refer to the properties, you would have to dereference, like this:

my $second_property = $O_P{'FolderObject'}->[1];

If @Object and @Property are prepopulated with a large number of values, you need to figure out how to take the right slices from @Property to assign the right values to each @Object (maybe they all have the same number of properties?).

As mentioned, this assumes that the keys in @Object are unique -- you'll overwrite part of your hash if there are duplicate entries in @Object.

Update: Ah, I see you are parsing XML. As mentioned by davidrw, you may not need to re-invent the wheel, here. :)


No good deed goes unpunished. -- (attributed to) Oscar Wilde