Revision history for DBM::Deep.
0.99_01 ??? ?? ??;??:?? 2006 Pacific
- - Provided explicit dependency on Perl 5.6.0
+ - Added explicit dependency on Perl 5.6.0
- Digest::MD5 requires 5.6.0
- Sub::Uplevel (dep of Test::Exception) requires 5.6.0
- Removed error()/clear_error()
+ - All error-handling is done with die()
- Broke out DBM::Deep's code into DBM::Deep::Engine
+ - Tied variables can no longer be assigned to a DBM::Deep object.
+ - This includes cross-file assignments.
+ - Autovivification now works
+ - This is a consequence of the fact that all assignments are tied.
+ - set_pack() and set_digest() have been removed.
+ - Instead, you will now pass the appropriate values into new()
+ - A pack_size parameter has been added to make 64-bit files easier
0.98 Feb 28 11:00:00 2006 Pacific
- Added in patch by David Cantrell to allow use of DATA filehandle
make sure there are no child references lying around. DBM::Deep keeps a reference
counter, and if it is greater than 1, optimize() will abort and return undef.
-=head2 AUTOVIVIFICATION
-
-Unfortunately, autovivification doesn't work with tied hashes. This appears to
-be a bug in Perl's tie() system, as I<Jakob Schmidt> encountered the very same
-issue with his I<DWH_FIle> module (see L<http://search.cpan.org/search?module=DWH_File>),
-and it is also mentioned in the BUGS section for the I<MLDBM> module <see
-L<http://search.cpan.org/search?module=MLDBM>). Basically, on a new db file,
-this does not work:
-
- $db->{foo}->{bar} = "hello";
-
-Since "foo" doesn't exist, you cannot add "bar" to it. You end up with "foo"
-being an empty hash. Try this instead, which works fine:
-
- $db->{foo} = { bar => "hello" };
-
-As of Perl 5.8.7, this bug still exists. I have walked very carefully through
-the execution path, and Perl indeed passes an empty hash to the STORE() method.
-Probably a bug in Perl.
-
=head2 REFERENCES
(The reasons given assume a high level of Perl understanding, specifically of