summaryrefslogtreecommitdiff
path: root/lib/AnyDBM_File.pm
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafcol.lafayette.edu>1995-05-30 01:56:48 +0000
committerAndy Dougherty <doughera@lafcol.lafayette.edu>1995-05-30 01:56:48 +0000
commitf06db76b9e41859439aeadb79feb6c603ee741ff (patch)
tree0898eb19feb17c3aa0ff6916fc182a998f1b9949 /lib/AnyDBM_File.pm
parentd1b918924020f633640d8b8cc8294856a82ddc04 (diff)
downloadperl-f06db76b9e41859439aeadb79feb6c603ee741ff.tar.gz
This is my patch patch.1g for perl5.001.
This patch only includes updates to the lib/ directory and the removal of the pod/modpods. The main things are the following: The modpods are now embedded in their corresponding .pm files. The Grand AutoLoader patch. Updates to lib/ExtUtils/xsubpp by Paul Marquess <pmarquess@bfsec.bt.co.uk>. Minor changes to a very few modules and pods. To apply, change to your perl directory, run the commands above, then apply with patch -p1 -N < thispatch. After you apply this patch, you should go on to apply patch.1h and patch.1i before reConfiguring and building. Patch and enjoy, Andy Dougherty doughera@lafcol.lafayette.edu Dept. of Physics Lafayette College, Easton PA Here's the file-by-file description: lib/AnyDBM_File.pm Embedded pod. lib/AutoLoader.pm Grand AutoLoader patch. Embedded pod. lib/AutoSplit.pm Grand AutoLoader patch. Embedded pod. Skip pod sections when splitting .pm files. lib/Benchmark.pm lib/Carp.pm lib/Cwd.pm lib/English.pm Grand AutoLoader patch. Embedded pod. lib/Exporter.pm Grand AutoLoader patch. Embedded pod. Update comments to match behavior. lib/ExtUtils/MakeMaker.pm Include installation of .pod and .pm files. Space out documentation for better printing with pod2man. lib/ExtUtils/xsubpp Patches from Paul Marquess <pmarquess@bfsec.bt.co.uk>, 22 May 1995. Now at version 1.4. lib/File/Basename.pm Embedded pod. lib/File/CheckTree.pm Embedded pod. lib/File/Find.pm Embedded pod. Included finddepth pod too. lib/FileHandle.pm Embedded pod. lib/Getopt/Long.pm Embedded pod. Fixed PERMUTE order bug. lib/Getopt/Std.pm Embedded pod. Caught accessing undefined element off end of @arg array. lib/I18N/Collate.pm lib/IPC/Open2.pm lib/IPC/Open3.pm lib/Net/Ping.pm Embedded pod. lib/Term/Complete.pm Embedded pod. Changed name from complete to Complete to match documentation and exported name. lib/Text/Abbrev.pm Embedded pod. lib/Text/Tabs.pm Updated. lib/integer.pm lib/less.pm lib/sigtrap.pm lib/strict.pm lib/subs.pm Embedded pod.
Diffstat (limited to 'lib/AnyDBM_File.pm')
-rw-r--r--lib/AnyDBM_File.pm83
1 files changed, 83 insertions, 0 deletions
diff --git a/lib/AnyDBM_File.pm b/lib/AnyDBM_File.pm
index ff9078652e..50acce412a 100644
--- a/lib/AnyDBM_File.pm
+++ b/lib/AnyDBM_File.pm
@@ -7,3 +7,86 @@ eval { require DB_File } ||
eval { require GDBM_File } ||
eval { require SDBM_File } ||
eval { require ODBM_File };
+
+=head1 NAME
+
+AnyDBM_File - provide framework for multiple DBMs
+
+NDBM_File, ODBM_File, SDBM_File, GDBM_File - various DBM implementations
+
+=head1 SYNOPSIS
+
+ use AnyDBM_File;
+
+=head1 DESCRIPTION
+
+This module is a "pure virtual base class"--it has nothing of its own.
+It's just there to inherit from one of the various DBM packages. It
+prefers ndbm for compatibility reasons with Perl 4, then Berkeley DB (See
+L<DB_File>), GDBM, SDBM (which is always there--it comes with Perl), and
+finally ODBM. This way old programs that used to use NDBM via dbmopen()
+can still do so, but new ones can reorder @ISA:
+
+ @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File);
+
+Note, however, that an explicit use overrides the specified order:
+
+ use GDBM_File;
+ @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File);
+
+will only find GDBM_File.
+
+Having multiple DBM implementations makes it trivial to copy database formats:
+
+ use POSIX; use NDBM_File; use DB_File;
+ tie %newhash, DB_File, $new_filename, O_CREAT|O_RDWR;
+ tie %oldhash, NDBM_File, $old_filename, 1, 0;
+ %newhash = %oldhash;
+
+=head2 DBM Comparisons
+
+Here's a partial table of features the different packages offer:
+
+ odbm ndbm sdbm gdbm bsd-db
+ ---- ---- ---- ---- ------
+ Linkage comes w/ perl yes yes yes yes yes
+ Src comes w/ perl no no yes no no
+ Comes w/ many unix os yes yes[0] no no no
+ Builds ok on !unix ? ? yes yes ?
+ Code Size ? ? small big big
+ Database Size ? ? small big? ok[1]
+ Speed ? ? slow ok fast
+ FTPable no no yes yes yes
+ Easy to build N/A N/A yes yes ok[2]
+ Size limits 1k 4k 1k[3] none none
+ Byte-order independent no no no no yes
+ Licensing restrictions ? ? no yes no
+
+
+=over 4
+
+=item [0]
+
+on mixed universe machines, may be in the bsd compat library,
+which is often shunned.
+
+=item [1]
+
+Can be trimmed if you compile for one access method.
+
+=item [2]
+
+See L<DB_File>.
+Requires symbolic links.
+
+=item [3]
+
+By default, but can be redefined.
+
+=back
+
+=head1 SEE ALSO
+
+dbm(3), ndbm(3), DB_File(3)
+
+=cut