我们有以下代码段,
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版本中工作,但在新版本中却没有。
答案 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)命令并报告它所说的内容将会很有帮助。