This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use B<> for options in Class::Struct pod
[perl5.git]
/
lib
/
AnyDBM_File.pm
diff --git
a/lib/AnyDBM_File.pm
b/lib/AnyDBM_File.pm
index
e6a1503
..
aff3c7c
100644
(file)
--- a/
lib/AnyDBM_File.pm
+++ b/
lib/AnyDBM_File.pm
@@
-1,11
+1,14
@@
package AnyDBM_File;
package AnyDBM_File;
-use vars qw(@ISA);
+use vars qw(@ISA);
@ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA;
my $mod;
for $mod (@ISA) {
@ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA;
my $mod;
for $mod (@ISA) {
- return 1 if eval "require $mod"
+ if (eval "require $mod") {
+ @ISA = ($mod); # if we leave @ISA alone, warnings abound
+ return 1;
+ }
}
die "No DBM package was successfully found or installed";
}
die "No DBM package was successfully found or installed";
@@
-15,7
+18,7
@@
die "No DBM package was successfully found or installed";
AnyDBM_File - provide framework for multiple DBMs
AnyDBM_File - provide framework for multiple DBMs
-NDBM_File,
ODBM_File, SDBM_File, G
DBM_File - various DBM implementations
+NDBM_File,
DB_File, GDBM_File, SDBM_File, O
DBM_File - various DBM implementations
=head1 SYNOPSIS
=head1 SYNOPSIS
@@
-30,14
+33,8
@@
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:
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.
+ BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File) }
+ use AnyDBM_File;
Having multiple DBM implementations makes it trivial to copy database formats:
Having multiple DBM implementations makes it trivial to copy database formats: