Data::Dumper Perl 模块

问题描述 投票:0回答:3

以下陈述的实际含义是什么?

use Data::Dumper qw(Dumper);

Data::Dumper
仅用于打印哈希内容吗?

您能简单解释一下吗?

perl perl-module data-dumper
3个回答
2
投票

简单来说,Data::Dumper采用 Perl 数据结构并将其转换为包含 Perl 代码的字符串,当 eval()ed(即作为代码运行)时,返回等效的数据结构。这很有用,有很多原因,但一个非常简单的用途是打印出数据结构,看看它是否符合您的想法。

示例:

use Data::Dumper qw(Dumper); # Import the Dumper() subroutine
my %hash = ( a => 1, b => 2, c => 3 );
print Dumper(\%hash);  # Note the \ backslash; Dumper() takes references as arguments

输出:

$VAR1 = {
          'c' => 3,
          'a' => 1,
          'b' => 2
        };

取自Re: Data::Dumper 参考哈希


0
投票

Dumper 方法采用标量或引用列表...引用可以来自不同类型的 hashref、arrayref

这是调试复杂结构的好方法

SCALAR(确实不太有用)

[~]=> perl -e 'use Data::Dumper; $a=1; print Dumper($a);'
$VAR1 = 1;

数组参考

[~]=> perl -e 'use Data::Dumper; @a=(1,2,3,4); print Dumper(\@a);'
$VAR1 = [
          1,
          2,
          3,
          4
        ];

哈希引用

[~]=> perl -e 'use Data::Dumper; %a=(a=>1,b=>2,c=>3); print Dumper(\%a);'
$VAR1 = {
          'a' => 1,
          'c' => 3,
          'b' => 2
        };

复杂的哈希引用

[~]=> perl -e 'use Data::Dumper; %a=(a=>1,b=> ["apple","banana","pear"],c=> {z=>99,y=>98}); print Dumper(\%a);'
$VAR1 = {
          'c' => {
                   'z' => 99,
                   'y' => 98
                 },
          'b' => [
                   'apple',
                   'banana',
                   'pear'
                 ],
          'a' => 1
        };

数组引用和哈希引用

[~]=> perl -e 'use Data::Dumper; @a=("zidane", "platini", "kopa"); %b=(a=>1,b=>2,c=>3); print Dumper(\@a, \%b);'
$VAR1 = [
          'zidane',
          'platini',
          'kopa'
        ];
$VAR2 = {
          'a' => 1,
          'c' => 3,
          'b' => 2
        };

带循环的 ARRAYREF

[~]=> perl -e 'use Data::Dumper; %a=(x=>1, y=>\%a);  print Dumper(\%a);'
$VAR1 = {
          'x' => 1,
          'y' => $VAR1
        };

0
投票

具体语句

use Data::Dumper qw(Dumper)
的意思是“在此脚本的命名空间中包含来自Data::Dumper模块的Dumper功能列表。”

Data::Dumper 的文档说:

“给定标量或引用变量的列表,用 Perl 语法写出它们的内容。”

这很有用,因为这样您就可以在其他时间将它们加载回另一个脚本中,并依靠 Perl 本身将文本正确解析为您之前拥有的 perl 结构。

© www.soinside.com 2019 - 2024. All rights reserved.