在使用tie时,碰到的问题,请高手指点一二,,不胜感激

qyzj 2007-08-14 01:07:01
my $db_prof = new DB_File::BTREEINFO;
my %aa;
$db = tie %aa, 'DB_File', '/var/log/test.db', O_RDWR|O_CREAT, 0640, $db_prof;
unless( tied(%aa) ) {
return undef;
}
foreach (key %aa ) {
//输出到控制台
}

前提"/var/log/test.db"文件中有数据,执行完后,可%aa中没有获取到相应的数据.请问为什么?
...全文
165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyzxyz1111 2007-08-15
  • 打赏
  • 举报
回复
运行perl程序的用户是否有/var/log/test.db 的读写权限? 我把/var/log/test.db这个文件的路径修改了,试过没有问题

另,没有看到你的程序里给%aa的元素赋值.

qyzj 2007-08-15
  • 打赏
  • 举报
回复
不好意思,,
foreach (keys %aa ) {
//输出到控制台
}
只是表示输出的一个意思,实际执行的代码是:
while (my ($key,$val) = each %aa){
//输出到控制台

}
程序也没有提示任何错误,还请高手再帮忙看看.........
iambic 2007-08-14
  • 打赏
  • 举报
回复
有任何错误或者警告没有?

如果没有,加上点东西试试:

my $db_prof = new DB_File::BTREEINFO;
my %aa;
$db = tie %aa, 'DB_File', '/var/log/test.db', O_RDWR|O_CREAT, 0640, $db_prof
or die "open error: $!";

unless( tied(%aa) ) {
return undef;
}

foreach (keys %aa ) {
//输出到控制台
}
xyzxyz1111 2007-08-14
  • 打赏
  • 举报
回复
有key这个方法吗? 应该是keys吧

37,742

社区成员

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

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