Perl Data Dumper Объяснение спецификаторов - PullRequest
0 голосов
/ 27 сентября 2018

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

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

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

$VAR1 = "Snow";
$VAR1 = "Rain";
$VAR1 = "Sunny";
$VAR1 = "";

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Похоже, у вас есть массив:

my @arr = ('Snow','Rain','Sunny');
print Dumper(@arr);

Когда вы передаете массив, Dumper думает, что вы передали 3 отдельные переменные.Вот почему вы получаете:

$VAR1 = 'Snow';
$VAR2 = 'Rain';
$VAR3 = 'Sunny';

Чтобы увидеть массив как структуру данных, вам нужно передать ссылку на массив:

print Dumper(\@arr);

Это приведет к:

$VAR1 = [
          'Snow',
          'Rain',
          'Sunny'
        ];

В выводе говорится, что вы передали ссылку на массив с 3 элементами.

0 голосов
/ 27 сентября 2018

Спецификаторы описаны во втором абзаце ОПИСАНИЯ:

Возвращаемое значение может быть «вычислено» для получения идентичной копии исходной ссылочной структуры.

Итак, вы можете взять строку, возвращенную Dumper, и запустить

my $x = eval $dumped_string;
...