1. dbm 操作接口说明
Perl中可用关联数组来访问DBM文件,所用函数为dbmopen和dbmclose,在Perl5中,已用tie和untie代替。
函数名 dbmopen
调用语法 dbmopen (array, dbmfilename, permissions);
解说 将关联数组与DBM文件相关联。参数为:
1、array:所用关联数组
2、dbmfilename:将打开的DBM文件名
3、访问权限详见mkdir
函数名 dbmclose
调用语法 dbmclose (array);
解说 关闭DBM文件,拆除关联数组与之的关系。
DBM简介:
DBM是一种文件数据储存数据,由于采用哈希结构进行连接,因此具有一些数据库的特点功能与普通文本数据库相比,具有稳定,检索速度快和支持量大的优点,由于DBM是从Unix系统中移植来的,因此在Unix/linux系统中优点比较明显,而在NT系统中则不太理想,在NT中使用有时会另数据文件变得十分庞大。
DBM的使用:
数据库采用关联数组方式保存数据,并与关联数组结合使用。
打开文件:
dbmopen(%USERFILE,"dbfilename",0666); 此时将把数据值赋给USERFILE关联数组。
关闭文件:
dbmclose(%USERFILE);
打开关闭DBM哈希:
dbmopen(%ARRAYNAME,"dbmfilename",$mode);
参数%ARRAYNAME是哈希变量。这个哈希内部的值会被清理掉,随后和名称为dbmfilename的DBM数据库产生关联;
参数$mode是一个数字,代表权限控制位。常用的设定是0644,代表只有所有者同时有读写权,其他人只有读取权。
如:dbmopen(%FRED,"mydatabase",0644);#开启以%FRED表示的mydatabase文件
关闭:dbmclose(%ARRAYNAME); #结束关联状态
添加数据:
dbmopen(%USERFILE,"dbfilename",0666);
$USERFILE{$no}=value;
dbmclose(%USERFILE);
$no是数组的关联值,必须唯一,否则该关联数据会被更新。
删除数据:
dbmopen(%USERFILE,"dbfilename",0666);
delete $USERFILE{$no};
dbmclose(%USERFILE);
$no是要删除的关联值。
更新数据:
dbmopen(%USERFILE,"dbfilename",0666);
$USERFILE{$no}=value;
dbmclose(%USERFILE);
历遍数组:
dbmopen(%USERFILE,"dbfilename",0644);
%TEMP=%USERFILE;
dbmclose(%USERFILE);
foreach (keys(%TEMP)){
$value=$TEMP{$_};
}