This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Quick integration of mainline changes to date
[perl5.git] / ext / GDBM_File / GDBM_File.pm
CommitLineData
4633a7c4 1# GDBM_File.pm -- Perl 5 interface to GNU gdbm library.
bd81798f 2
4633a7c4
LW
3=head1 NAME
4
5GDBM_File - Perl5 access to the gdbm library.
6
7=head1 SYNOPSIS
8
9 use GDBM_File ;
02c45c47 10 tie %hash, 'GDBM_File', $filename, &GDBM_WRCREAT, 0640;
4633a7c4
LW
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
9fe6733a 36L<perl(1)>, L<DB_File(3)>, L<perldbmfilter>.
4633a7c4
LW
37
38=cut
39
a0d0e21e
LW
40package GDBM_File;
41
96318ac8
PM
42use strict;
43use vars qw($VERSION @ISA @EXPORT $AUTOLOAD);
44
a0d0e21e 45require Carp;
96318ac8 46require Tie::Hash;
a0d0e21e 47require Exporter;
3b35bae3 48use AutoLoader;
146174a9
CB
49use XSLoader ();
50@ISA = qw(Tie::Hash Exporter);
a0d0e21e
LW
51@EXPORT = qw(
52 GDBM_CACHESIZE
53 GDBM_FAST
54 GDBM_INSERT
55 GDBM_NEWDB
56 GDBM_READER
57 GDBM_REPLACE
58 GDBM_WRCREAT
59 GDBM_WRITER
60);
61
cad2e5aa 62$VERSION = "1.03";
c07a80fd 63
a0d0e21e 64sub AUTOLOAD {
96318ac8 65 my($constname);
a0d0e21e 66 ($constname = $AUTOLOAD) =~ s/.*:://;
96318ac8 67 my $val = constant($constname, @_ ? $_[0] : 0);
a0d0e21e 68 if ($! != 0) {
265f5c4a 69 if ($! =~ /Invalid/ || $!{EINVAL}) {
a0d0e21e
LW
70 $AutoLoader::AUTOLOAD = $AUTOLOAD;
71 goto &AutoLoader::AUTOLOAD;
72 }
73 else {
74 Carp::croak("Your vendor has not defined GDBM_File macro $constname, used");
75 }
76 }
77 eval "sub $AUTOLOAD { $val }";
78 goto &$AUTOLOAD;
79}
80
146174a9 81XSLoader::load 'GDBM_File', $VERSION;
a0d0e21e
LW
82
83# Preloaded methods go here. Autoload methods go after __END__, and are
84# processed by the autosplit program.
85
861;
87__END__