Perl命令dbmopen无法正常工作

时间:2014-10-28 12:18:15

标签: perl

我们有以下代码段,

dbmopen(%NEWHASHTABLE,“$ hashFile”,$ mode);

其中哈希文件如下所示

1: - D:/Inwoven.TeamSite/local/config/PublicWeb/modules/ModuleLightingECatalogueSection--publicweb_lighting--main--shared--STAGING.db

2: - D:/Inwoven /TeamSite / local / config / PublicWeb / modules / ModuleLightingECatalogueSection--publicweb_lighting--main--webdevelopment--WORKAREA--w-main.db

和模式是666。

当我尝试从哈希表(%NEWHASHTABLE)中取出数据时,我发现其中没有数据。

您能否建议可以添加什么?

相同的代码在我们旧的teamsite版本中工作,但在新版本中却没有。

1 个答案:

答案 0 :(得分:1)

您的代码段应包含错误检查。 你正在检查错误,对吗?

 dbmopen(%NEWHASHTABLE, "$hashFile", $mode) or die "Can't open $hashfile: $!";

如果您没有检查错误,并且没有启用限制(use strict),那么在dbmopen失败后您将获得空哈希。

--------------- 2014-10-31 Updates-------------------------

我的代码段中没有use DB_File,所以假设Perl会假设file name you provided is the name of the dbm file (without the .pag or .dir extensions),您的程序正在尝试打开D:/ Interwoven / TeamSite / local /配置/ PublicWeb /模块/ ModuleLightingECatalogueS..ection - publicweb_lighting - 主 - web开发 - WORKAREA - W-main.db.pag

首先,我们需要知道您尝试使用哪种DBM文件。 在DBM文件上运行file(1)命令并报告它所说的内容将会很有帮助。