我有这个简单的Perl脚本:
#! /usr/bin/perl -w
use strict;
use Data::Dumper;
my %foo = ( 'abc' => 1 );
print Dumper(\%foo);
输出:
$VAR1 = {
'abc' => 1
};
如何让它输出呢?
%foo = (
'abc' => 1
);
答案 0 :(得分:23)
print Data::Dumper->Dump( [ \%foo ], [ qw(*foo) ] );
扩展语法需要两个arrayrefs:一个要转储的标量,另一个要使用的名称。如果名称前缀为*且相应的标量是arrayref或hashref,则会生成数组或散列赋值。
答案 1 :(得分:8)
除了ysth的答案,您还可以使用Ovid的Data::Dumper::Names模块。
答案 2 :(得分:4)
use Data::Dumper;
$Data::Dumper::Terse = 1;
print '%foo = '.(Dumper \%foo);
答案 3 :(得分:2)
此外,Data::Dumper::Simple大致相同。