note
Anonymous Monk
Well, according to the docs, it is, provided you follow the docs (use flags)
<c>#!/usr/bin/perl --
use strict; use warnings; use Data::Dump;
use BerkeleyDB;
for my $opts ( [], [-Flags => DB_CREATE| DB_INIT_CDB | DB_INIT_MPOOL] ){
my $env = BerkeleyDB::Env->new(
-Home => './home',
@$opts,
) or warn "cannot open environment: $BerkeleyDB::Error\n";
dd $env, [ glob './home/*' ];
}
__END__
</c>
<p> On first run it doesn't exist, so first try, without flags, fails -- you need flags to initialize
<c>
$ perl berkeleydb.env.pl
cannot open environment: No such file or directory
(undef, [])
(
bless([12346044], "BerkeleyDB::Env"),
[
"./home/__db.001",
"./home/__db.002",
"./home/__db.003",
"./home/__db.004",
],
)
</c>
<p> On second run both tries work, because its already initialized
<c>
$ perl berkeleydb.env.pl
(
bless([10087228], "BerkeleyDB::Env"),
[
"./home/__db.001",
"./home/__db.002",
"./home/__db.003",
"./home/__db.004",
],
)
(
bless([12336228], "BerkeleyDB::Env"),
[
"./home/__db.001",
"./home/__db.002",
"./home/__db.003",
"./home/__db.004",
],
)
</c>
989260
989268
7