关于DBM和复杂数据结构的问题

peakcn 2003-06-20 01:10:09
下面是我的一点儿代码,为什么执行结果不对呢?我想让使用DBM代码执行完与不用DBM的一样,请大侠们指点一下吧,先行谢过!

执行结果:

==========================
(
"Group",
"ARRAY(0x8111a94)",
"Users",
"ARRAY(0x815b80c)",
"Links",
"HASH(0x81599b0)",
)

==========================

如果不加DBM,则结果如下:

==========================
(
"Links",
{ "0" => [1, 3, 4], "1" => [2, 1], "2" => [2, 4] },
"Users",
[
{ Mail => "name1\@domain.com", name => "name1" },
{ Mail => "name2\@domain.com", name => "name2" },
{ Mail => "name3\@domain.com", name => "name3" },
{ Mail => "name4\@domain.com", name => "name4" },
{ Mail => "name5\@domain.com", name => "name5" },
],
"Group",
["group1", "group2", "group3", "group4", "group5"],
)

==========================
group2: name3
name2
group1: name2
name4
name5
group3: name3
name5


代码如下:

#!/usr/bin/perl-w

use Data::Dump qw(dump);

dbmopen(%ht,"/home/admin/perl/ht",0666);
$ht{Group}=["group1","group2","group3","group4","group5"];
$ht{Users}=[
{name=>"name1",Mail=>"name1\@domain.com"},
{name=>"name2",Mail=>"name2\@domain.com"},
{name=>"name3",Mail=>"name3\@domain.com"},
{name=>"name4",Mail=>"name4\@domain.com"},
{name=>"name5",Mail=>"name5\@domain.com"},
];
$ht{Links}={0=>[1,3,4],1=>[2,1],2=>[2,4]};

$str = dump(%ht);
print qq/==========================\n/;
print "$str\n\n";
print qq/==========================\n/;
foreach $key (keys %{$ht{Links}}) {
print "$ht{Group}[$key]:";
foreach $arr (@{$ht{Links}{$key}}) {
print "\t${$ht{Users}[$arr]}{name}\n";
}
}
dbmclose(%ht);
...全文
27 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-09-27
  • 打赏
  • 举报
回复
关注,帮你顶。

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧