Мне нужно получить доступ к массиву, который выводится 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, поэтому я не знаю, как работать с такими данными
Не использовать 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}
Других решений пока нет …