Perl哈希Data :: Dumper

时间:2012-03-13 16:32:29

标签: perl hash dump data-dumper

在Perl中我需要分析一个巨大的哈希,所以我使用Data::Dumper模块将其打印到一个文件中。因为它是一个巨大的文件,所以很难阅读。有可能以某种方式很好地打印Dumper输出,所以当我找到一个我正在寻找的字符串时,我将能够立即看到我正在寻找的字符串存储的关键结构吗?

目前我只使用一个简单的代码:

            use Data::Dumper;
            ...
            print Dumper $var;

获得良好输出的最佳语法或替代方法是什么?

4 个答案:

答案 0 :(得分:21)

我几乎总是设置

$Data::Dumper::Indent = 1;
$Data::Dumper::Sortkeys = 1;

Data::Dumper。第一个语句使输出更紧凑,并且当您的数据结构有多个级别时,可以更具可读性。第二个语句使扫描输出更容易,并快速找到您最感兴趣的键。

如果数据结构包含二进制数据或嵌入的标签/换行符,也请考虑

$Data::Dumper::Useqq = 1;

将为该数据输出合适的可读表示。

perldoc中的更多内容。

答案 1 :(得分:9)

一种可能的解决方案是使用Data::Dumper::Perltidy通过Perltidy运行Data :: Dump的输出。

#!/usr/bin/perl -w

use strict;
use Data::Dumper::Perltidy;

my $data = [{ title => 'This is a test header' },{ data_range =>
           [ 0, 0, 3, 9] },{ format     => 'bold' }];

print Dumper $data;

__END__

打印:

$VAR1 = [
    { 'title'      => 'This is a test header' },
    { 'data_range' => [ 0, 0, 3, 9 ] },
    { 'format'     => 'bold' }
];

另一种方法是使用Data::Dump

答案 2 :(得分:0)

$Data::Dumper::Sortkeys = 1;

如果您想获得更可靠的结果,那么您必须接下来跟随翻斗车。输入合适的词来操作该功能。

答案 3 :(得分:-1)

这回答了这个问题。

my $WWW_Scripter_Plugin_JavaScript_JE = ${ $VAR1->[1]{156192192} };
my $JE_Object_String = ${ $WWW_Scripter_Plugin_JavaScript_JE->{pf}{String} };
my $JE_Object_Function = ${ $JE_Object_String->{props}{search} };
my $REF = ${ $JE_Object_Function->{global} };
my $HTML_DOM_Element_Img = $REF->{classes}{'HTML::DOM::Element::Img'};

它也违反了封装。 Perl允许你这样做,但你应该问如何使用已发布的WWW :: Scripter API获取数据。

相关问题