I am attempting to create a multidimensional hash whose keys are the elements of a list. Simply put, I am parsing strings from a file and splitting them into key/val pairs on the '=' character. Then, I split the key itself on the ':' character, and would like to assign the result(s) as keys to a multidimensional hash.
Example:
The string/line read in from the file is 'a1:a2:a3=foo' - as a result, 'a1:a2:a3=foo' is assigned to $_
I'd like to create and assign $hash{'a1'}{'a2'}{'a3'} = 'foo'.# $key = 'a1:a2:a3', $val = 'foo' my ($key, $val) = split(/=/); # find the number of ':' in string my $num = map(/:/g, $key) + 1; # create hash keys - split returns 'a1','a2', and 'a3' # hash key creation NOT WORKING %hash = split(/:/, $key, $num);
In case you're wondering, I find the number of ':' because this code is used in a loop, and each line may or may not vary with each loop iteration. The last split creates the keys, I just can't figure out the creation and assignment to the hash. I looked at map(), but have yet to come up with a solution.
Thanks for any help provided.
In reply to List Values As Multidimensional Hash Keys by joule
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |