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<ftp.gnu.org>, but you are strongly urged to use one of the many
27mirrors.  You can obtain a list of mirror sites from
28http://www.gnu.org/order/ftp.html.
29
30=head1 BUGS
31
32The available functions and the gdbm/perl interface need to be documented.
33
34The GDBM error number and error message interface needs to be added.
35
36=head1 SEE ALSO
37
38L<perl(1)>, L<DB_File(3)>, L<perldbmfilter>.
39
40=cut
41
42package GDBM_File;
43
44use strict;
45use warnings;
46our($VERSION, @ISA, @EXPORT, $AUTOLOAD);
47
48require Carp;
49require Tie::Hash;
50require Exporter;
51use XSLoader ();
52@ISA = qw(Tie::Hash Exporter);
53@EXPORT = qw(
54	GDBM_CACHESIZE
55	GDBM_CENTFREE
56	GDBM_COALESCEBLKS
57	GDBM_FAST
58	GDBM_FASTMODE
59	GDBM_INSERT
60	GDBM_NEWDB
61	GDBM_NOLOCK
62	GDBM_OPENMASK
63	GDBM_READER
64	GDBM_REPLACE
65	GDBM_SYNC
66	GDBM_SYNCMODE
67	GDBM_WRCREAT
68	GDBM_WRITER
69);
70
71# This module isn't dual life, so no need for dev version numbers.
72$VERSION = '1.10';
73
74sub AUTOLOAD {
75    my($constname);
76    ($constname = $AUTOLOAD) =~ s/.*:://;
77    my ($error, $val) = constant($constname);
78    Carp::croak $error if $error;
79    no strict 'refs';
80    *{$AUTOLOAD} = sub { $val };
81    goto &{$AUTOLOAD};
82}
83
84XSLoader::load 'GDBM_File', $VERSION;
85
861;
87