#!/usr/bin/perl -w # $Id: db_look,v 1.3 2001/12/14 04:43:00 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 (); my $file = shift; die "usage: $0 file.db [key]\n" unless defined $file; # remove extension if any #my $chop = join '|', qw{db.? pag dir}; #$file =~ s/\.($chop)$//; my(%DB); my($db) = tie(%DB, 'AnyDBM_File', $file, O_RDONLY, 0444); defined($db) || die "Can't tie $file: $!\n"; my($fd) = $db->fd; open(DB_FH, "<&=$fd") || die "dup $!"; unless (flock (DB_FH, LOCK_SH)) { die "flock: $!" } my $key = shift; if (defined $key) { print $key, ' = ', (defined $DB{$key} ? $DB{$key} : '(undef)'), "\n"; } else { while (my($key,$val) = each %DB) { print $key, ' = ', $val, "\n"; } } flock(DB_FH, LOCK_UN); undef $db; undef $fd; untie(%DB); close(DB_FH); exit(0);