I often use perl "hierarchical data structures" which consist of multi-level hashes of hashes of things as a way to initialize and drive algorithms. One of the pitfalls of this approach is that it's easy to specify a structure which runs afoul of the assumptions of the code. Because of this, I find I write little ad hoc "structure checkers" which first check the structure for validity against my assumptions.
It finally occurred to me that what I need is some way in perl to specify a compact grammar, and then execute a checker: check ($grammar, $structure), and have it output a useful error pointing to the part of the structure which fails the check.
One has tools that do this, for example, for XML (e.g. schema validity checker).
I'm guessing someone has thought of this ages ago and there is some cool library that does this for perl structures. It's best if the solution is tailored specifically to perl structures, and is simple, rather than using some external, generalized grammar tool.
In reply to "Schema" specifier for perl in memory structures by zerohero
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |