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

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

我需要访问一个由 Perl 的 Data::Dumper 输出的数组。
数组在原始文件中,我需要使用 php.
访问它 数组格式如下:

$stats = {
  'days' => 25,
  'lengths' => {
    'Piwee' => 269,
    'Jeanne-' => 904,
    'kaAnar' => 340,
[... Very Big ARRAY....]

我在此处找到 this solution,但我不想使用 eval(),因为该数组将包含用户输入数据。 由于在 str_replace 解决方案的情况下我总是需要 eval() 输出,我想我需要找到另一种方法来做到这一点。
也许转换为 XML 或直接 PHP 解析?
我不确定这里最好的解决方案是什么。

Perl / PHP / bash 解决方案就可以了

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

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

使用 Perl JSON module's encode_json call to create a JSON string from the Perl hash, and PHP's json_decode 将其转换为 PHP 关联数组

例如,假设 Data::Dumper 的输出在文件 stats.data 中,那么像这样的简短 Perl 程序将打印 JSON 等同于 STDOUT

use strict;
use warnings 'all';

use JSON;

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

输出

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