$dict{'one'}=1;
print %dict;
这将打印
one1
到终端。但是,如果我的代码在字典哈希中有字典哈希,如下所示:
my %dict;
$dict{'1'}{'1'}=2;
print %dict;
这给出了输出:
1HASH(0xb1db78)
即使我将最后一行更改为
print $dict{'1'};
输出结果为:
HASH(0x13ccb78)
如何获取字典哈希的内容而不是参考位置?
答案 0 :(得分:7)
如果您想要整个结构,请使用核心Data::Dumper
模块。
use strict;
use warnings;
use Data::Dumper;
my %hash;
$hash{1}{1} = 2;
print Dumper( \%hash );
输出:
$VAR1 = {
'1' => {
'1' => 2
}
};
如果你想在Perl中使用嵌套结构(除了任何微不足道的事情),你需要了解 references 。如果你熟悉指针,那么你就在那里。
最好的资源在官方文档中:
答案 1 :(得分:3)
%dict['one']=1;
<<这是错误的
应为$dict{'one'}=1;
你应该有类似下面的东西。 警告:这是未经测试的代码,但您明白了我要说的话:
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
my %dict;
$dict{'1'}{'1'}=2;
$dict{'2'}{'2'}=3;
#print Dumper(\%dict);
foreach my $keys ( keys %dict )
{
print "$keys : ";
foreach my $keys2 ( keys %{ $dict{keys} } )
{
print "$keys2 = $dict{keys}{$keys2} \n" ;
}
print "\n";
}