免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1595 | 回复: 1
打印 上一主题 下一主题

帮我看看这段代码的错误,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-10 10:05 |只看该作者 |倒序浏览
Filename: accessDB.pl
      1 #!/usr/local/bin/perl -w
      2 use BerkeleyDB;
      3
      4 #my @testarray = ("aa","bb","cc","dd";
      5 tie %hash,"BerkeleyDB::Hash",
      6         -Filename =>; "info.dat"
      7 or die $!;
      8
      9 #$hash{"testArray"} = \@testarray;
     10 print "Key exists...\n" if (exists $hash{"testArray"});
     11 print $hash{"testArray"}[0];
     12 #my $i=0;
     13 #while ($hash{"listSignal"}[$i])
     14 #{
     15 #   print $hash{"listSignal"}[$i]."\n";
     16 #   $i++;
     17 #}
     18 untie %hash;
     19 exit;


$perl accessDB.pl
Key exists...
Use of uninitialized value in print at ./accessDB.pl line 11.
这是什么问题?难道在BerkeleyDB中不能引用数组吗?
创建info.dat的语句:
    1 #!/usr/local/bin/perl -w
      2 use BerkeleyDB;
      3
      4 my @testarray = ("aa","bb","cc","dd";
      5 tie %hash,"BerkeleyDB::Hash",
      6         -Filename =>; "info.dat",
      7         -Flags =>; DB_CREATE
      8 or die $!;
      9
     10 $hash{"testArray"} = \@testarray;
     11 #print "Key exists...\n" if (exists $hash{"testArray"});
     12 #print $hash{"testArray"}[0];
     13 #my $i=0;
     14 #while ($hash{"listSignal"}[$i])
     15 #{
     16 #   print $hash{"listSignal"}[$i]."\n";
     17 #   $i++;
     18 #}
     19 untie %hash;
     20 exit;

论坛徽章:
0
2 [报告]
发表于 2005-03-10 12:24 |只看该作者

帮我看看这段代码的错误,谢谢

我猜是 BerkeleyDB 不支持多层数据结构. 你试试简单建构的 hash 就知道了.

你可以用 storable 或 MLDBM 模块来保存多层结构的 hash.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP