my $env = new BerkeleyDB::Env -Flags => DB_CREATE | DB_INIT_CDB |DB_INIT_MPOOL, -Home => '/etc/postfix/policydb'; my (%domains); my $db = tie %domains,"BerkeleyDB::Hash", -Filename=> DOMAIN_FILE, -Flags=> DB_CREATE, -Mode => 0660, -Env=> $env or syslog 'error', "Can't open DB_File ". DOMAIN_FILE .": $!"; #### return $domains{$domain} if ($domains{$domain}); #### # Add to the berkeleydb unless some other process has already done it unless($domains{$domain}) { my $lock=$db->cds_lock(); $domains{$domain}=$return; $db->db_sync(); $lock->cds_unlock(); }