From: rkinyon Date: Fri, 7 Apr 2006 00:54:19 +0000 (+0000) Subject: Updated documentation and Changes X-Git-Tag: 0-99_01~34 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d2aefba0192db09111eee1be5b637709d01d3c9d;p=dbsrgits%2FDBM-Deep.git Updated documentation and Changes --- diff --git a/Changes b/Changes index 716df29..2c47577 100644 --- a/Changes +++ b/Changes @@ -1,11 +1,19 @@ 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 diff --git a/lib/DBM/Deep.pm b/lib/DBM/Deep.pm index 6016460..688e936 100644 --- a/lib/DBM/Deep.pm +++ b/lib/DBM/Deep.pm @@ -1509,26 +1509,6 @@ B Only call optimize() on the top-level node of the database, and 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 encountered the very same -issue with his I module (see L), -and it is also mentioned in the BUGS section for the I module ). 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