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