在PHP中使用Perl的Data :: Dumper格式数组

Use a Perl's Data::Dumper format array in PHP

我需要访问Perl的Data :: Dumper输出的数组。
数组位于原始文件中,我需要使用php对其进行访问。
数组的格式如下:

1
2
3
4
5
6
7
$stats = {
  'days' => 25,
  'lengths' => {
    'Piwee' => 269,
    'Jeanne-' => 904,
    'kaAnar' => 340,
[... Very Big ARRAY....]

我在这里找到了此解决方案,但我不想使用eval(),因为此数组将具有用户输入的数据。
由于在str_replace解决方案的情况下,我将始终需要eval()输出,因此我认为我需要找到另一种方法。
也许转换为XML或通过直接PHP解析?
我不确定什么是最好的解决方案。

perl / PHP / bash解决方案没问题

注1:我无法编辑输出此原始文件的Perl代码
注意2:我没有用Perl编写代码,所以我不知道如何使用这样的数据


请勿使用Data::Dumper导出数据。它主要用于调试目的,而不是用于数据序列化,尤其是不用于输入外语

使用Perl JSON模块的encode_json调用从Perl哈希创建JSON字符串,并使用PHP的json_decode将其转换为PHP关联数组

例如,说您从Data::Dumper的输出在文件stats.data中,那么像这样的简短Perl程序将打印与STDOUT

等效的JSON。

1
2
3
4
5
6
7
use strict;
use warnings 'all';

use JSON;

print encode_json( do 'stats.data' or die $! ),"\
"
;

输出

1
{"lengths":{"Jeanne-":904,"Piwee":269,"kaAnar":340},"days":25}