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