标签: data-dumper

Perl哈希Data :: Dumper

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

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

            use Data::Dumper;
            ...
            print Dumper $var;
Run Code Online (Sandbox Code Playgroud)

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

perl hash dump data-dumper

11
推荐指数
2
解决办法
4万
查看次数

如何在Perl的Data :: Dumper中控制变量名?

我有这个简单的Perl脚本:

#! /usr/bin/perl -w

use strict;
use Data::Dumper;

my %foo = ( 'abc' => 1 );

print Dumper(\%foo);
Run Code Online (Sandbox Code Playgroud)

它输出:

$VAR1 = {
          'abc' => 1
        };
Run Code Online (Sandbox Code Playgroud)

如何让它输出呢?

%foo = (
         'abc' => 1
       );
Run Code Online (Sandbox Code Playgroud)

perl data-dumper

10
推荐指数
3
解决办法
6504
查看次数

如何使用`Data :: Dumper`防止打印变量名

我正在使用Data::Dumper配置打印perl哈希,这将由另一个脚本进行评估.问题是它始终$VAR =在输出开始时打印.我尝试将Varname参数设置为空字符串,但后来我得到$1而不是$VAR.如何使用Dumper?阻止打印变量名称?

my $params = {-PARAMS => 0} #data

local $Data::Dumper::Purity = 1;
local $Data::Dumper::Varname  = "";
print Dumper($params) ;
Run Code Online (Sandbox Code Playgroud)

打印:

$1 = {
    '-UPDATE' => 0,
}
Run Code Online (Sandbox Code Playgroud)

我希望有:

{
    '-UPDATE' => 0,
}
Run Code Online (Sandbox Code Playgroud)

perl data-dumper

8
推荐指数
2
解决办法
1858
查看次数

如何控制Data :: Dumper输出的格式?

我正在使用Data::Dumper::Dumper()方法.输出很好,但可以做得小巧紧凑,外观更好看.

我怎么能控制它?有哪些更好的选择?

perl dump data-dumper

6
推荐指数
2
解决办法
5613
查看次数

Perl的Data :: Dumper显示对象而不是值

 foreach my $row (1..$end) 
 { 
  foreach my $col (3..27 ) 
  { 
    # skip empty cells 
    next unless defined 
    $worksheet->Cells($row,$col)->{'Value'}; 

    # print out the contents of a cell  
    $var = $worksheet->Cells($row,$col)->{'Value'};     
    push @dates, $var;  

    print $var; #this prints the value just fine
  } 
 }  

my %hash;
$hash{'first'} = \@dates;
print Dumper \%hash; #This prints object information 
Run Code Online (Sandbox Code Playgroud)

我使用模块OLE for Perl和我从工作表中获得的每个值并打印$ var然后我得到了预期的值,但是当我把所有内容放入哈希时它打印:

'first' => [
bless( do{\(my $o = 15375916)}, 'OLE::Variant'), 
bless( do{\(my $o = 15372208)}, 'OLE::Variant'),
Run Code Online (Sandbox Code Playgroud)

等等.我一定不明白哈希的事情,因为我真的很难过.

perl hash ole data-dumper

6
推荐指数
1
解决办法
1551
查看次数

显示来自对象数组的数据

我正在尝试显示使用其他公司的API获得的对象数组中的数据,但是当我尝试使用foreach循环时遇到错误.

我正在使用Dumper来显示数组中的所有内容.

print Dumper($object);
Run Code Online (Sandbox Code Playgroud)

自卸车的部分输出:

'enable_dha_thresholds' => 'false',
  'members' => [
    bless( {
      'ipv4addr' => '192.168.1.67',
      'name' => 'name.something.com'
    }, 'Something::Network::Member' ),
    bless( {
      'ipv4addr' => '192.168.1.68',
      'name' => 'name.something.com'
    }, 'Something::Network::Member' )
  ],
  'comment' => 'This is a comment',

我正在尝试提取似乎是双数组的"成员":

//this works    
print $members->enable_dha_thresholds(); 

//this works
print $members[0][0]->ipv4addr; 

//does not work
foreach my $member ($members[0]){
     print "IP". $member->ipv4addr()."\n";  
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:无法在./script.pl第12行的未填充引用上调用方法"ipv4addr".

我不确定我是否完全理解Perl中的"祝福"与"不完美",因为我不熟悉该语言.

perl data-dumper

6
推荐指数
2
解决办法
4659
查看次数

如何在PHP中反序列化Perl Data :: Dumper输出

我在Perl中有一个导出变量的结果,就像这个字符串:

$VAR1 = {
    'guard' => undef,
    'work_hand' => undef,
    'images' => 
        {'1' => 
            {
            'mini_height' => 150,
            'width' => 150,
            'extension' => 'jpg',
            'filename' => 'object_1.1330907414.96873.jpg',
            'mini_width' => 150,
            'class' => 'Ontico::Image',
            'height' => 150,
            'mini_filename' => 'object_1.1330907414.96873.mini.jpg',
            'size' => 26053,
            'symname' => 'big_logo'
            },
        '2' => 
            {
            'width' => 48,
            'extension' => 'jpg',
            'alt' => '??????? ????????',
            'height' => 48,
            'mini_filename' => 'object_91.1235312905.mini.jpg',
            'size' => 12809,
            'symname' => 'logo',
            'mini_height' => 150,
            'filename' => 'object_91.1235312905.jpg',
            'mini_width' => 150, …
Run Code Online (Sandbox Code Playgroud)

php perl serialization data-dumper

6
推荐指数
2
解决办法
1140
查看次数

如何使用Data :: Dumper显示可读的UTF-8字符串?

我在结构中有一些UTF-8编码的字符串,我倾向于使用Data :: Dumper进行调试.

一个小测试案例是:

use utf8;
use Data::Dumper;
say Dumper({??=>"??"}
Run Code Online (Sandbox Code Playgroud)

它输出

{
  "\x{434}\x{430}" => "\x{43d}\x{435}"
};
Run Code Online (Sandbox Code Playgroud)

但我想看

{
  "??" => "??"
};
Run Code Online (Sandbox Code Playgroud)

当然,我的结构非常复杂.如何在调试时使转储结构中的字符串可读?也许我必须以chr某种方式处理输出warn/say

debugging unicode perl utf-8 data-dumper

6
推荐指数
1
解决办法
701
查看次数

我如何回读Data :: Dumper的输出?

假设我使用Data::Dumper以下行创建了一个文本文件:

my $x = [ { foo => 'bar', asdf => undef }, 0, -4, [ [] ] ];
Run Code Online (Sandbox Code Playgroud)

我想把这个文件读回来然后$x回来.我试过这个:

my $vars;
{
  undef $/;
  $vars = <FILE>;
}

eval $vars;
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用 - $x不仅没有定义,当我尝试使用它时,我得到一个警告

全局符号$ x需要显式包名称.

这样做的正确方法是什么?(是的,我知道它很难看.它是一个快速的实用程序脚本,而不是一个生命支持系统.)

perl persistence data-dumper

5
推荐指数
4
解决办法
1万
查看次数

Perl中的Data :: Dump和Data :: Dumper模块有什么区别?

我已经使用Data::Dumper了很长时间.在谷歌搜索时,我发现了一个类似的模块Data::Dump.

任何人都可以告诉我,他们提供的子程序之间的主要区别是什么?

perl data-dumper

5
推荐指数
1
解决办法
860
查看次数

标签 统计

data-dumper ×10

perl ×10

dump ×2

hash ×2

debugging ×1

ole ×1

persistence ×1

php ×1

serialization ×1

unicode ×1

utf-8 ×1