Perl Data Dumper Объяснение спецификаторов

Наблюдая за выводом Data::Dumper, спецификаторы ($VAR1, "", ;) не объяснены в документации CPAN.

  1. Какова цель для $VAR1?
  2. Какова цель для точки с запятой?
  3. Какова цель для цитат?

Вот мой вывод:

$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;
Другие вопросы по тегам