似乎您需要使用Perl脚本(或一个行程序)来阅读本文,然后导出正确的JSON。在
首先,显示的内容不是有效的Perl。我将假设一些基本的语法错误的错误。在
在mylist前面还有一个丢失的%;在Perl中,变量名以sigil开头,%表示哈希。我会假设这是一个遗漏张贴,但它在那里。如果没有,你就得解决这个问题。在
然后让我使用一个文件data.pm,例如%mylist = (
blah => {
other => 9,
houses => 1,
etc => [ { etc => '5', ppl => '3' }, { etc => '9', ppl => '5' } ]
}
);
这是一个简短的已发布数据示例,其中修复了一些拼写错误。在
下面是一个Perl脚本,可以从中生成JSON。它使用do将文件作为脚本执行,从而将数据结构(哈希)读入程序。然后JSON::PP
模块用于从中生成JSON,因为它应该安装在使用Perl的系统上。在
^{pr2}$
整个工作是在前两行完成的。JSON::PP是一个核心模块(since v5.14),但如果外部依赖不是问题,请使用JSON,如果安装了fastJSON::XS,则使用它。在
这很好地符合一个班轮perl -MJSON::PP -wE'say encode_json { do "./data.pm" }' > data.json
其中输出被重定向到文件。在
程序和一行程序输出(为了可读性而换行){"blah":{"other":"9","houses":"1","etc":
[{"ppl":"3","etc":"5"},{"ppl":"5","etc":"9"}]}}
写入的文件data.json的内容是什么。在
为此,.pm文件必须只包含一个有效的Perl数据结构。如果变量多于一个散列值,这将不起作用,因为do不会返回所有这些数据。那你就得用其他方法处理文件了。在