in reply to parsing a parent-child syntax to make a hash
If your requirements are flexible enough (or you can deal with translating to and/or from its syntax) maybe Data::Path might be of use?