如何在Perl中打印嵌套哈希值?

如何在Perl中打印嵌套哈希值?,perl,Perl,这会打印出来 一 到终点站。但是如果我的代码在字典散列中有一个字典散列,该怎么办 $dict{'one'}=1; print %dict; 这将提供以下输出: my %dict; $dict{'1'}{'1'}=2; print %dict; 即使我把最后一行改为 1HASH(0xb1db78) 输出为: 散列(0x13ccb78) 如何获取字典哈希的内容而不是引用位置?%dict['one']=1如果需要整个结构,请使用核心模块 产出: use strict; use warnings

这会打印出来

到终点站。但是如果我的代码在字典散列中有一个字典散列,该怎么办

$dict{'one'}=1;
print %dict;
这将提供以下输出:

my %dict;
$dict{'1'}{'1'}=2;

print %dict;
即使我把最后一行改为

1HASH(0xb1db78)
输出为:

散列(0x13ccb78)


如何获取字典哈希的内容而不是引用位置?

%dict['one']=1如果需要整个结构,请使用核心模块

产出:

use strict;
use warnings;

use Data::Dumper;

my %hash;
$hash{1}{1} = 2;

print Dumper( \%hash );
如果您想在Perl中使用嵌套结构(除了任何琐碎的东西),您需要了解引用。如果你熟悉指针,那么你已经成功了一半

最好的资源在官方文档中:


使用第一行在Untitled.pl第6行“%dict[”附近出现语法错误@chimpsarehungry我很抱歉。更正了它。即使有花括号,我仍然会得到错误。perl也是新手。@chimpsarehungry抱歉!终于更正了!值得指出的是,它们在perl中被称为散列。不想太迂腐,但你更可能在文档中找到正确名称的帮助是的。它应该是$dict{'one'}…是的,我明白了。我会试试你说的。你的意思是说在perl中使用嵌套数据结构并不简单,或者如果我想做一些不简单的事情?总之,我不只是想看到输出,我想访问嵌套结构的所有级别。Dumper只提供内容,对吗?正确,Dumper做它的名字如果您必须访问单个值,那么就了解perl引用。friedo提供的链接是一个很好的起点。在最近的perl(5.14)上,Data::Printer更好。
#!/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";
}
use strict;
use warnings;

use Data::Dumper;

my %hash;
$hash{1}{1} = 2;

print Dumper( \%hash );
$VAR1 = {
          '1' => {
                   '1' => 2
                 }
        };