Используйте массив данных Perl Data :: Dumper в стеке переполнения

Мне нужно получить доступ к массиву, который выводится Perl Data :: Dumper.
Массив находится в сыром файле, и мне нужно получить доступ к нему с помощью php.
Массив форматируется так:

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

я нашел это решение здесь, но я не хочу использовать eval (), потому что этот массив будет иметь данные пользовательского ввода.
Поскольку мне всегда нужно выводить eval () в случае решения str_replace, я думаю, что мне нужно найти другой способ сделать это.
Может быть, конвертировать в XML или путем прямого анализа PHP?
Я не уверен, что будет лучшим решением здесь.

Perl / PHP / Bash решение будет в порядке

примечание 1: я не могу редактировать код Perl, который выводит этот необработанный файл
примечание 2: я не пишу код на Perl, поэтому я не знаю, как работать с такими данными

0

Решение

Не использовать Data::Dumper экспортировать ваши данные. Это в первую очередь для целей отладки, а не для сериализации данных, и особенно не для ввода на иностранном языке

Используйте Perl JSON модуля encode_json вызов для создания строки JSON из хэша Perl и PHP 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}
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]