将Perl Hash加载到Java中

时间:2016-12-02 13:59:09

标签: java xml perl data-structures hash

我有一个很大的.pm文件,它只包含一个非常大的Perl哈希,包含许多子索引。我必须将此哈希加载到Java程序中,对下面的数据进行一些工作和更改,并将其保存回.pm文件,该文件看起来应该与我开始的类似。

到现在为止,我试图通过正则表达式和字符串匹配将其转换为行,然后将其转换为XML文档,然后将Elementwise解析回perl哈希。

这在某种程度上有效,但看起来很狡猾。是否有更可靠的方法来解析perl哈希而不安装perl运行时?

1 个答案:

答案 0 :(得分:1)

你说得对,完全是肮脏的。首先是用于XML的正则表达式和字符串是一个可怕的想法,老实说,XML可能不适合这种情况。

我建议您考虑JSON。我会惊讶地发现java无法处理JSON,它本身就是一个面向哈希和数组的数据结构。

所以你可以完全理解:

use JSON;
print to_json ( $data_structure, { pretty => 1 } );

注意 - 它不适用于序列化对象,但对于perl散列/数组/标量类型结构,它可以正常工作。

然后您可以使用以下命令将其导入perl:

my $new_data = from_json $string;
print Dumper $new_data;

Dumper它到一个文件,但鉴于你的要求是多语言继续,只使用原生JSON作为你的'静止'数据可能是一个更明智的选择。

但是如果你正在寻找解析java中的 perl代码而没有perl解释器?不,那只是精神错乱。