6

是否有可以读取这样的字符串的 CPAN 模块:

"[[<asdf>, <foo>], (abc, def, ghi), ({'jkl'})]"

...并将其解析为某种易于行走和打印的树结构?

4

5 回答 5

9

我认为您可以在Text::Balanced之上构建,这将为您完成很多繁重的工作。不过,您仍然需要构建一个树形结构。

于 2008-12-09T22:23:59.273 回答
4

Perl 5.10 的正则表达式可以处理这样的平衡结构。请参阅perlre(?PARNO) (?-PARNO) (?+PARNO) (?R) (?0)中的部分。

于 2008-12-10T01:20:16.780 回答
2

Perl 6将有内置的工具来帮助支持这一点。在此期间,Text::Balanced(如 Dave Rolsky 所述)可能是首选模块。请注意,它也是由 Damian Conway 编写的(由 Bill Karwin 推荐)。

于 2008-12-09T22:37:13.647 回答
1

Damian Conway 的 Parse::RecDescent

我没有使用过这个,但可以肯定的是 Damian Conway 编写的 Perl 模块值得使用。

于 2008-12-09T21:28:46.607 回答
0

如果字符串与Data Dumper格式相同,则可以eval-ed 回到原始结构。

于 2008-12-09T21:58:02.040 回答