in reply to variable number of hash of hashes
You could treat it as string, transform to final version and do eval:
Output:#!perl -l @strings = <DATA>; for(@strings) { chomp; s/,/'}{'/g; s/^/\$hash{'/; s/$/'}++/; print "eval $_"; eval $_; } use Data::Dumper; print Dumper \%hash; __DATA__ string1,string2,string3,string4 string3,string4 string1,string2,string3
But as you can see there is a problem to solve: 'string3' => 5393161 which was created as reference to hash, but then replaced by value. What do you want to do in such situation?c:\>test.pl eval $hash{'string1'}{'string2'}{'string3'}{'string4'}++ eval $hash{'string3'}{'string4'}++ eval $hash{'string1'}{'string2'}{'string3'}++ $VAR1 = { 'string3' => { 'string4' => 1 }, 'string1' => { 'string2' => { 'string3' => 5393161 } } };
|
|---|