X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FDB_File%2FDB_File.pm;h=3bdadede043e118cfec1ca43c09acb7fb0d7cf8d;hb=6ff38c2790dea060035b4175aa870de4adce00c9;hp=a3cd082df6bacb4e9eabeb55f8e9bc8e4a0fbce1;hpb=2359510ddb135dcc6e80153f51cff0a97b20b597;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/DB_File/DB_File.pm b/ext/DB_File/DB_File.pm index a3cd082..3bdaded 100644 --- a/ext/DB_File/DB_File.pm +++ b/ext/DB_File/DB_File.pm @@ -1,10 +1,10 @@ # DB_File.pm -- Perl 5 interface to Berkeley DB # # written by Paul Marquess (pmqs@cpan.org) -# last modified 22nd December 2003 -# version 1.808 +# last modified 11th November 2005 +# version 1.814 # -# Copyright (c) 1995-2003 Paul Marquess. All rights reserved. +# Copyright (c) 1995-2005 Paul Marquess. All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. @@ -161,11 +161,11 @@ package DB_File ; use warnings; use strict; our ($VERSION, @ISA, @EXPORT, $AUTOLOAD, $DB_BTREE, $DB_HASH, $DB_RECNO); -our ($db_version, $use_XSLoader, $splice_end_array); +our ($db_version, $use_XSLoader, $splice_end_array, $Error); use Carp; -$VERSION = "1.808" ; +$VERSION = "1.814" ; { local $SIG{__WARN__} = sub {$splice_end_array = "@_";}; @@ -266,7 +266,12 @@ sub tie_hash_or_array $arg[2] = O_CREAT()|O_RDWR() if @arg >=3 && ! defined $arg[2]; $arg[3] = 0666 if @arg >=4 && ! defined $arg[3]; - # make recno in Berkeley DB version 2 work like recno in version 1. + # make recno in Berkeley DB version 2 (or better) work like + # recno in version 1. + if ($db_version >= 4 and ! $tieHASH) { + $arg[2] |= O_CREAT(); + } + if ($db_version > 1 and defined $arg[4] and $arg[4] =~ /RECNO/ and $arg[1] and ! -e $arg[1]) { open(FH, ">$arg[1]") or return undef ; @@ -1850,7 +1855,7 @@ Here is another real-life example. By default, whenever Perl writes to a DBM database it always writes the key and value as strings. So when you use this: - $hash{12345} = "soemthing" ; + $hash{12345} = "something" ; the key 12345 will get stored in the DBM database as the 5 byte string "12345". If you actually want the key to be stored in the DBM database @@ -2252,7 +2257,7 @@ compile properly on IRIX 5.3. =head1 COPYRIGHT -Copyright (c) 1995-2003 Paul Marquess. All rights reserved. This program +Copyright (c) 1995-2005 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.