Perl 数据转储说明符说明
Perl Data Dumper Specifiers Explanation
观察Data::Dumper的输出,说明符($VAR1
、""
、;
)在CPAN文档中没有解释。
$VAR1
的目的是什么?
- 分号的用途是什么?
- 引用的目的是什么?
这是我的输出:
$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 个元素的数组的引用。
观察Data::Dumper的输出,说明符($VAR1
、""
、;
)在CPAN文档中没有解释。
$VAR1
的目的是什么?- 分号的用途是什么?
- 引用的目的是什么?
这是我的输出:
$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 个元素的数组的引用。