perl 5.003_05: lib/AnyDBM_File.pm
Perl 5 Porters [Thu, 5 Sep 1996 04:14:21 +0000 (04:14 +0000)]
AnyDBM_File (modifying ISA does not work as expected)
Now behaves as documented:  Modifying ISA works to select
order in which *DB* modules are tried.  The default is still
the same.

Add helpful "die" message to end of AnyDBM_File.  Previously
it would return a 0, and the failure would eventually show up
somewhere else in the script and be hard to track down.  It is
a failure if perl can't open AnyDBM_File.  The test regression
suite is supposed to indicate this as a failure too.

lib/AnyDBM_File.pm

index c985e7e..e6a1503 100644 (file)
@@ -1,12 +1,15 @@
 package AnyDBM_File;
+use vars qw(@ISA);
 
 @ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA;
 
-eval { require NDBM_File } ||
-eval { require DB_File } ||
-eval { require GDBM_File } ||
-eval { require SDBM_File } ||
-eval { require ODBM_File };
+my $mod;
+for $mod (@ISA) {
+    return 1 if eval "require $mod"
+}
+
+die "No DBM package was successfully found or installed";
+#return 0;
 
 =head1 NAME