hi,
vermutlich funktioniert das Locken der Datei nicht richtig, so dass es Race-Conditions gibt. Mein Workaround sieht so aus:
sub wri{
untie(%cont) || return(); # Content in DB_File
# Kopie der public.ini anlegen
open (OUT, ">$$cfg{path}{dbdir}/public.tmp") || return;
foreach my $url(keys %{$pub}){
print OUT "[$url]\n";
foreach my $p(keys %{$$pub{$url}}){
print OUT "$p=$$pub{$url}{$p}\n";
}
print OUT "\n";
}
close OUT;
untie(%{$pub}) || return;
# Kopie zurückschreiben
require File::Copy;
File::Copy::copy("$$cfg{path}{dbdir}/public.tmp", "$$cfg{path}{dbdir}/public.ini");
return "Written";
# fehlerhaft, manche Parameter fehlen
# tied( %{$pub} )->WriteConfig( "$$cfg{path}{dbdir}/public.ini" ) || return;
}