如何在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
}
};