Perl Data Dumper Объяснение спецификаторов
Наблюдая за выводом Data::Dumper, спецификаторы ($VAR1
, ""
, ;
) не объяснены в документации CPAN.
- Какова цель для
$VAR1
? - Какова цель для точки с запятой?
- Какова цель для цитат?
Вот мой вывод:
$VAR1 = "Snow";
$VAR1 = "Rain";
$VAR1 = "Sunny";
$VAR1 = "";
2 ответа
Решение
Похоже, у вас есть массив:
my @arr = ('Snow','Rain','Sunny');
print Dumper(@arr);
Когда вы передаете массив, Dumper думает, что вы передали 3 отдельные переменные. Вот почему вы получаете:
$VAR1 = 'Snow';
$VAR2 = 'Rain';
$VAR3 = 'Sunny';
Чтобы увидеть массив как структуру данных, вам нужно передать ссылку на массив:
print Dumper(\@arr);
Это даст:
$VAR1 = [
'Snow',
'Rain',
'Sunny'
];
Вывод говорит, что вы передали ссылку на массив с 3 элементами.
Спецификаторы описаны во втором абзаце ОПИСАНИЯ:
Возвращаемое значение может быть "вычислено" для получения идентичной копии исходной ссылочной структуры.
Итак, вы можете взять строку, возвращенную Dumper, и запустить
my $x = eval $dumped_string;