note
araqnid
Perhaps you could look at the [BerkeleyDB] CPAN module.
<p>
This is an interface to BerkeleyDB (2.x or 3.x) that uses the native API instead of the DB1.85 API used by DB_File.
<p>
The reason I think it's relevant is that you can use a "Recno" format database, and tie it to an array. (However, the documenation is unclear on this, and I haven't got the module installed to hand).
<p>
Here is an extract from an example in the documentation:
<code>
use strict;
use BerkeleyDB;
my $filename = "text" ;
unlink $filename ;
my @h ;
tie @h, 'BerkeleyDB::Recno',
-filename => $filename,
-Flags => DB_CREATE,
-Property => DB_RENUMBER
or die "Cannot open $filename: $!\n" ;
# Add a few key/value pairs to the file
$h[0] = "orange" ;
$h[1] = "blue" ;
$h[2] = "yellow" ;
push @h, "green", "black" ;
</code>
<p>
The problem then becomes if you can actually use MLDBM to tie an array instead of a hash, and TBH I don't know.
<p>
But I would have thought it would be fairly easy to add such functionality to MLDBM if it isn't there.
70780
70780