Merged changes from tag Release-0.8.0
[onis.git] / lib / Onis / Data / Persistent / Dbm.pm
index 397ae8c..2e1cac6 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 BEGIN
 {
-       @AnyDBM_File::ISA = (qw(GDBM_File DB_File GDBM_File SDBM_File NDBM_File ODBM_File));
+       @AnyDBM_File::ISA = (qw(DB_File GDBM_File SDBM_File NDBM_File ODBM_File));
 }
 
 use Carp qw(carp confess);
@@ -28,13 +28,14 @@ Storage backend that uses DBM files for storing data permanently.
 
 =item B<dbm_directory>: I<E<lt>dirE<gt>>
 
-Directory in which the DBM-files are kept.
+Directory in which the DBM-files are kept. Defaults to the B<var>-directory in
+onis' main directory.. 
 
 =back
 
 =cut
 
-our $DBMDirectory = get_config ('dbm_directory') || 'var';
+our $DBMDirectory = get_config ('storage_dir') || 'var';
 $DBMDirectory =~ s#/$##g;
 
 if (!$DBMDirectory or !-d $DBMDirectory)
@@ -171,9 +172,8 @@ sub keys
        my $val;
 
        no strict (qw(subs));
-       for (($key, $val) = $db->FIRSTKEY (); ($key, $val) = $db->NEXTKEY ($key);)
+       for (($key, $val) = $db->FIRSTKEY (); defined ($key) and defined ($val); ($key, $val) = $db->NEXTKEY ($key))
        {
-               die unless (defined ($key));
                next if (defined ($obj->{'cache'}{$key}));
 
                $obj->{'cache'}{$key} = [split ($Alarm, $val)];