关于PERL的数据库

 

关于PERL的数据库

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

关闭文件:

dbmclose(%USERFILE);

添加数据:

 

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{$_};
}

 

##############################################
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;
}
#################################
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值