ODBM_File - 绑定访问 odbm 文件
use Fcntl; # For O_RDWR, O_CREAT, etc.
use ODBM_File;
# Now read and change the hash
$h{newkey} = newvalue;
print $h{oldkey};
...
untie %h;
ODBM_File
在 Perl 哈希变量和 ODBM_File 格式的文件之间建立连接。您可以像操作 Perl 哈希一样操作文件中的数据,但在程序退出时,数据将保留在文件中,以便在下次程序运行时使用。
使用 Perl 内置的 tie
函数与 ODBM_File
建立变量和文件之间的连接。tie
的参数应该是
您要绑定的哈希变量。
字符串 "ODBM_File"
。(这告诉 Perl 使用 ODBM_File
包来执行哈希的功能。)
您要绑定到哈希的文件的名称。
标志。使用以下之一
如果您想在文件不存在的情况下创建它,请将O_CREAT
添加到这些标志中的任何一个,如示例所示。如果您省略O_CREAT
,并且文件不存在,则tie
调用将失败。
如果创建新文件,则使用默认权限。实际权限将由用户的umask修改,因此您可能应该在此处使用0666。(参见"umask" in perlfunc。)
如果失败,tie
调用将返回一个未定义的值,并且可能将$!
设置为包含文件无法绑定的原因。
odbm store returned -1, errno 22, key "..." at ...
当您尝试存储过长键或值时,会发出此警告。这意味着更改未记录在数据库中。请参见下面的错误和警告。
不要接受来自不可信来源的ODBM文件。
在现代Linux系统上,这些通常是GDBM文件,它们在平台之间不可移植。
GDBM文档没有暗示来自不可信来源的文件可以安全地与libgdbm
一起使用。
不使用GDBM兼容性来支持旧的dbm的系统将使用特定于平台的库,可能继承自BSD系统,在这种情况下,使用不可信文件可能是安全的,也可能不是安全的。
恶意制作的文件可能会导致perl崩溃,甚至暴露安全漏洞。
您可以存储在ODBM文件中的数据大小存在一些限制。最重要的是,键的长度加上其关联值的长度不能超过1008字节。