|P is for Practical|
dynamic hash nestingby karrakis (Novice)
|on Aug 16, 2012 at 20:22 UTC||Need Help??|
karrakis has asked for the
wisdom of the Perl Monks concerning the following question:
This may fall in the dangerous category of "why using variables to name variables is stupid" (yes, I've read the thing).
Then again, it may not. I'm going to be very explicit about the objective of all this so I don't get someone shoving a sword through my belly immediately, but what I really need to know is not how-to-do-all-the-things but just how to do this:
I need to dynamically create a nest of hashes from a text file with data separated by tabs and newlines.
I want to pull such a text file (of depth unknown) into a (potentially indefinite) nest of hashes that can be used to derive outputs from the data without including the outputs explicitly in the code.
The size of the file, and depth of the contextual relationships contained within, will vary. The number of tabs before a word or phrase will dictate its depth in the hash, and a new hash tree will be created by any word or phrase with no tabs preceding. Any $value followed by a newline and more tabs than preceded it should become a hash itself, where any $value followed by a newline and the same number or fewer tabs as preceded it should become a scalar (will be treated as output values)
It is important that people (not necessarily me) be able to modify the desired outputs ("Assault and Battery", "Assault with a deadly weapon" etc - i.e.) in the text file, rather than in the code.
Is this something that is possible in Perl?
Thank you for indulging my nubcakery