$dict{'one'}=1;
print %dict;
这将打印
一个1
到终端。但是,如果我的代码在这样的字典散列中有一个字典散列怎么办:
my %dict;
$dict{'1'}{'1'}=2;
print %dict;
这给出了输出:
1HASH(0xb1db78)
即使我将最后一行更改为
print $dict{'1'};
输出是:
哈希(0x13ccb78)
如何获取字典哈希的内容而不是参考位置?
$dict{'one'}=1;
print %dict;
这将打印
一个1
到终端。但是,如果我的代码在这样的字典散列中有一个字典散列怎么办:
my %dict;
$dict{'1'}{'1'}=2;
print %dict;
这给出了输出:
1HASH(0xb1db78)
即使我将最后一行更改为
print $dict{'1'};
输出是:
哈希(0x13ccb78)
如何获取字典哈希的内容而不是参考位置?
如果您想要整个结构,请使用核心Data::Dumper
模块。
use strict;
use warnings;
use Data::Dumper;
my %hash;
$hash{1}{1} = 2;
print Dumper( \%hash );
输出:
$VAR1 = {
'1' => {
'1' => 2
}
};
如果你想在 Perl 中使用嵌套结构(超越任何琐碎的事情),你需要了解references。如果您熟悉指针,那么您就成功了一半。
最好的资源在官方文档中:
%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";
}