Perl 数据转储说明符说明

Perl Data Dumper Specifiers Explanation

观察Data::Dumper的输出,说明符($VAR1"";)在CPAN文档中没有解释。

  1. $VAR1 的目的是什么?
  2. 分号的用途是什么?
  3. 引用的目的是什么?

这是我的输出:

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

说明符在描述的第二段中进行了描述:

The return value can be "eval"ed to get back an identical copy of the original reference structure.

因此,您可以将 Dumper 返回的字符串和 运行

my $x = eval $dumped_string;

看起来你有一个数组:

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

当你传递数组时,Dumper 认为你传递了 3 个独立的变量。这就是为什么你得到:

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

为了将数组视为数据结构,您需要传递对数组的引用:

print Dumper(\@arr);

这将产生:

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

输出表明您传递了对包含 3 个元素的数组的引用。