11

我有这个简单的 Perl 脚本:

#! /usr/bin/perl -w

use strict;
use Data::Dumper;

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

print Dumper(\%foo);

它输出:

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

我如何让它输出这个呢?

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

4 回答 4

24
print Data::Dumper->Dump( [ \%foo ], [ qw(*foo) ] );

扩展语法采用两个数组引用:一个是要转储的标量,一个是要使用的名称。如果名称以 * 为前缀,并且对应的标量是 arrayref 或 hashref,则生成数组或散列赋值。

于 2009-05-26T03:08:52.637 回答
8

除了 ysth 的回答,您还可以使用 Ovid 的Data::Dumper::Names模块。

于 2009-05-26T03:17:04.010 回答
7
use Data::Dumper;

$Data::Dumper::Terse = 1;

print '%foo = '.(Dumper \%foo);
于 2013-12-27T16:24:22.987 回答
2

此外,Data::Dumper::Simple大致做到了这一点。

于 2009-05-26T14:17:22.567 回答