1use strict; use warnings; 2 3package Memoize::AnyDBM_File; 4our $VERSION = '1.16'; 5 6our @ISA = qw(DB_File GDBM_File Memoize::NDBM_File SDBM_File ODBM_File) unless @ISA; 7 8for my $mod (@ISA) { 9 if (eval "require $mod") { 10 $mod = 'NDBM_File' 11 if $mod eq 'Memoize::NDBM_File' 12 and eval { NDBM_File->VERSION( '1.16' ) }; 13 print STDERR "AnyDBM_File => Selected $mod.\n" if our $Verbose; 14 @ISA = $mod; 15 return 1; 16 } 17} 18 19die "No DBM package was successfully found or installed"; 20 21__END__ 22 23=pod 24 25=head1 NAME 26 27Memoize::AnyDBM_File - glue to provide EXISTS for AnyDBM_File for Storable use 28 29=head1 DESCRIPTION 30 31This class does the same thing as L<AnyDBM_File>, except that instead of 32L<NDBM_File> itself it loads L<Memoize::NDBM_File> if L<NDBM_File> lacks 33L<EXISTS|perltie/C<EXISTS>> support. 34 35Code which requires perl 5.37.3 or newer should simply use L<AnyBDM_File> directly. 36 37=cut 38