1# GDBM_File.pm -- Perl 5 interface to GNU gdbm library. 2 3=head1 NAME 4 5GDBM_File - Perl5 access to the gdbm library. 6 7=head1 SYNOPSIS 8 9 use GDBM_File ; 10 tie %hash, 'GDBM_File', $filename, &GDBM_WRCREAT, 0640; 11 # Use the %hash array. 12 untie %hash ; 13 14=head1 DESCRIPTION 15 16B<GDBM_File> is a module which allows Perl programs to make use of the 17facilities provided by the GNU gdbm library. If you intend to use this 18module you should really have a copy of the gdbm manualpage at hand. 19 20Most of the libgdbm.a functions are available through the GDBM_File 21interface. 22 23=head1 AVAILABILITY 24 25Gdbm is available from any GNU archive. The master site is 26C<prep.ai.mit.edu>, but your are strongly urged to use one of the many 27mirrors. You can obtain a list of mirror sites by issuing the 28command C<finger fsf@prep.ai.mit.edu>. 29 30=head1 BUGS 31 32The available functions and the gdbm/perl interface need to be documented. 33 34=head1 SEE ALSO 35 36L<perl(1)>, L<DB_File(3)>, L<perldbmfilter>. 37 38=cut 39 40package GDBM_File; 41 42use strict; 43use warnings; 44our($VERSION, @ISA, @EXPORT, $AUTOLOAD); 45 46require Carp; 47require Tie::Hash; 48require Exporter; 49use AutoLoader; 50use XSLoader (); 51@ISA = qw(Tie::Hash Exporter); 52@EXPORT = qw( 53 GDBM_CACHESIZE 54 GDBM_FAST 55 GDBM_INSERT 56 GDBM_NEWDB 57 GDBM_NOLOCK 58 GDBM_READER 59 GDBM_REPLACE 60 GDBM_WRCREAT 61 GDBM_WRITER 62); 63 64$VERSION = "1.05"; 65 66sub AUTOLOAD { 67 my($constname); 68 ($constname = $AUTOLOAD) =~ s/.*:://; 69 my $val = constant($constname, @_ ? $_[0] : 0); 70 if ($! != 0) { 71 if ($! =~ /Invalid/ || $!{EINVAL}) { 72 $AutoLoader::AUTOLOAD = $AUTOLOAD; 73 goto &AutoLoader::AUTOLOAD; 74 } 75 else { 76 Carp::croak("Your vendor has not defined GDBM_File macro $constname, used"); 77 } 78 } 79 eval "sub $AUTOLOAD { $val }"; 80 goto &$AUTOLOAD; 81} 82 83XSLoader::load 'GDBM_File', $VERSION; 84 85# Preloaded methods go here. Autoload methods go after __END__, and are 86# processed by the autosplit program. 87 881; 89__END__ 90