是否有CPAN模块可以读取这样的字符串:
"[[<asdf>, <foo>], (abc, def, ghi), ({'jkl'})]"
...并将其解析为某种易于行走和漂亮打印的树状结构?
答案 0 :(得分:9)
我认为你可以建立在Text::Balanced之上,这将为你做很多繁重的工作。但是,您仍然需要构建树结构。
答案 1 :(得分:4)
Perl 5.10的正则表达式可以处理这样的平衡结构。请参阅perlre中的(?PARNO) (?-PARNO) (?+PARNO) (?R) (?0)
部分。
答案 2 :(得分:2)
Perl 6将有内置工具来帮助支持这一点。在此期间,Text :: Balanced(如Dave Rolsky所述)可能是首选模块。请注意,它也是由Damian Conway撰写的(Bill Karwin称赞)。
答案 3 :(得分:1)
Damian Conway's Parse::RecDescent
我没有使用过这个,但是Damian Conway编写的Perl模块值得使用是个不错的选择。
答案 4 :(得分:0)
如果字符串与Data Dumper格式相同,则可以eval
- 重新编辑回原始结构。