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