关于PERL的数据库

前端之家收集整理的这篇文章主要介绍了关于PERL的数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
 

关于PERL的数据库

DBM简介:
DBM是一种文件数据储存数据,由于采用哈希结构进行连接,因此具有一些数据库的特点功
能与普通文本数据库相比,具有稳定,检索速度快和支持量大的优点,由于DBM是从Unix系统
中移植来的,因此在Unix/linux系统中优点比较明显,而在NT系统中则不太理想,在NT中使用
有时会另数据文件变得十分庞大。
 
DBM的使用:
数据库采用关联数组方式保存数据,并与关联数组结合使用。
打开文件
dbmopen(%USERFILE,"dbfilename",0666);
此时将把数据值赋给USERFILE关联数组。

关闭文件

dbmclose(%USERFILE);

添加数据:

 

dbmopen(%USERFILE,0666);
$USERFILE{$no}=value;
dbmclose(%USERFILE);
$no是数组的关联值,必须唯一,否则该关联数据会被更新。

删除数据:

 

dbmopen(%USERFILE,0666);
delete $USERFILE{$no};
dbmclose(%USERFILE);
$no是要删除的关联值。

更新数据:

 

dbmopen(%USERFILE,0666);
$USERFILE{$no}=value;
dbmclose(%USERFILE);

 

历遍数组:


dbmopen(%USERFILE,0644);
%TEMP=%USERFILE;
dbmclose(%USERFILE);
foreach (keys(%TEMP)){
$value=$TEMP{$_};
}

 

############################################## use Fcntl qw(:flock); package PACK::DB; require Exporter; @ISA = qw(Exporter); @EXPORT_OK = qw(dbopen dbclose);   sub dbopen {     my $dbfile = shift;     my $lockfile = shift;     system("touch $lockfile") unless (-e $lockfile);     open my $fh,$lockfile;     flock $fh,LOCK_EX;     my %dbm;     dbmopen(%dbm,$dbfile,0666);     return(\%dbm,$fh); }   sub dbclose {     my $db = shift;     my $lock_handle = shift;     dbmclose(%$db);     flock $lock_handle,LOCK_UN;     close $lock_handle; } #################################  

猜你在找的Perl相关文章