This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to PathTools-3.27
[perl5.git] / ext / GDBM_File / GDBM_File.pm
1 # GDBM_File.pm -- Perl 5 interface to GNU gdbm library.
2
3 =head1 NAME
4
5 GDBM_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
16 B<GDBM_File> is a module which allows Perl programs to make use of the
17 facilities provided by the GNU gdbm library.  If you intend to use this
18 module you should really have a copy of the gdbm manualpage at hand.
19
20 Most of the libgdbm.a functions are available through the GDBM_File
21 interface.
22
23 =head1 AVAILABILITY
24
25 gdbm is available from any GNU archive.  The master site is
26 C<ftp.gnu.org>, but you are strongly urged to use one of the many
27 mirrors.  You can obtain a list of mirror sites from
28 http://www.gnu.org/order/ftp.html.
29
30 =head1 BUGS
31
32 The available functions and the gdbm/perl interface need to be documented.
33
34 The GDBM error number and error message interface needs to be added.
35
36 =head1 SEE ALSO
37
38 L<perl(1)>, L<DB_File(3)>, L<perldbmfilter>. 
39
40 =cut
41
42 package GDBM_File;
43
44 use strict;
45 use warnings;
46 our($VERSION, @ISA, @EXPORT, $AUTOLOAD);
47
48 require Carp;
49 require Tie::Hash;
50 require Exporter;
51 use 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 $VERSION = "1.08_01";
72 $VERSION = eval $VERSION; # Needed for dev versions
73
74 sub 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
84 XSLoader::load 'GDBM_File', $VERSION;
85
86 1;