#!/usr/bin/perl -w # $Id: db_add,v 1.1 2001/12/17 20:08:05 mradwin Exp $ BEGIN { @AnyDBM_File::ISA = qw(DB_File NDBM_File GDBM_File SDBM_File) } use strict; use Fcntl qw(:DEFAULT :flock); use AnyDBM_File (); die "usage: $0 file.db key val\n" unless @ARGV == 3; my $file = shift; my $key = shift; my $val = shift; my(%DB); my($db) = tie(%DB, 'AnyDBM_File', $file, O_RDWR|O_CREAT, 0644); defined($db) || die "Can't tie $file: $!\n"; my($fd) = $db->fd; open(DB_FH, "+<&=$fd") || die "dup $!"; unless (flock (DB_FH, LOCK_EX)) { die "flock: $!" } $DB{$key} = $val; flock(DB_FH, LOCK_UN); undef $db; undef $fd; untie(%DB); close(DB_FH); exit(0);