home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / ext / GDBM_File / GDBM_File.pm next >
Text File  |  2000-01-22  |  2KB  |  88 lines

  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<prep.ai.mit.edu>, but your are strongly urged to use one of the many
  27. mirrors.   You can obtain a list of mirror sites by issuing the
  28. command    C<finger fsf@prep.ai.mit.edu>.
  29.  
  30. =head1 BUGS
  31.  
  32. The available functions and the gdbm/perl interface need to be documented.
  33.  
  34. =head1 SEE ALSO
  35.  
  36. L<perl(1)>, L<DB_File(3)>, L<perldbmfilter>. 
  37.  
  38. =cut
  39.  
  40. package GDBM_File;
  41.  
  42. use strict;
  43. our($VERSION, @ISA, @EXPORT, $AUTOLOAD);
  44.  
  45. require Carp;
  46. require Tie::Hash;
  47. require Exporter;
  48. use AutoLoader;
  49. use XSLoader ();
  50. @ISA = qw(Tie::Hash Exporter);
  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.  
  62. $VERSION = "1.03";
  63.  
  64. sub AUTOLOAD {
  65.     my($constname);
  66.     ($constname = $AUTOLOAD) =~ s/.*:://;
  67.     my $val = constant($constname, @_ ? $_[0] : 0);
  68.     if ($! != 0) {
  69.     if ($! =~ /Invalid/ || $!{EINVAL}) {
  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.  
  81. XSLoader::load 'GDBM_File', $VERSION;
  82.  
  83. # Preloaded methods go here.  Autoload methods go after __END__, and are
  84. # processed by the autosplit program.
  85.  
  86. 1;
  87. __END__
  88.