我有一个很大的.pm
文件,它只包含一个非常大的Perl哈希,包含许多子索引。我必须将此哈希加载到Java程序中,对下面的数据进行一些工作和更改,并将其保存回.pm
文件,该文件看起来应该与我开始的类似。
到现在为止,我试图通过正则表达式和字符串匹配将其转换为行,然后将其转换为XML文档,然后将Elementwise解析回perl哈希。
这在某种程度上有效,但看起来很狡猾。是否有更可靠的方法来解析perl哈希而不安装perl运行时?
答案 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解释器?不,那只是精神错乱。