代码之家  ›  专栏  ›  技术社区  ›  raldi

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

  •  9
  • raldi  · 技术社区  · 15 年前

    我有一个简单的Perl脚本:

    #! /usr/bin/perl -w
    
    use strict;
    use Data::Dumper;
    
    my %foo = ( 'abc' => 1 );
    
    print Dumper(\%foo);
    

    它输出:

    $VAR1 = {
              'abc' => 1
            };
    

    我如何让它输出这个呢?

    %foo = (
             'abc' => 1
           );
    
    4 回复  |  直到 12 年前
        1
  •  24
  •   ysth    15 年前
    print Data::Dumper->Dump( [ \%foo ], [ qw(*foo) ] );
    

    扩展语法使用两个ArrayRef:一个要转储的标量,另一个要使用的名称。如果名称的前缀为*且相应的标量为arrayref或hashref,则会生成数组或哈希赋值。

        2
  •  8
  •   Chas. Owens    15 年前

    除了伊斯特的答案,你还可以使用奥维德的 Data::Dumper::Names

        3
  •  5
  •   serenesat    9 年前
    use Data::Dumper;
    
    $Data::Dumper::Terse = 1;
    
    print '%foo = '.(Dumper \%foo);
    
        4
  •  2
  •   serenesat    9 年前

    而且 Data::Dumper::Simple 大概就是这样。

    推荐文章
    lollan  ·  遍历哈希数组
    8 年前