Struppi: kein DBM close nach untie ?

Beitrag lesen

Du brauchst und hast, wenn du mit DB_File arbeitest keinen Filehandle.
Wenn du alle Einträge durchlaufen möchtest musst du die keys abfragen.

foreach(keys %hash)
{
.....

}

ich will nicht in jedem key was ändern.Er soll sämtliche user loggen und wenn ein neuer kommt dann soll er das auch eintragen,wenn er nicht exitstiert in der DBM datei.

Du gibst mir Rätsel auf. Du benutzt doch DB_File, oder?
Da passiert das was du willst von ganz alleine.

use DB_File;

my $name = 'irgendwas'; # Der username
my %logins;
tie %logins , "DB_File", "$loginlog", O_RDWR|O_CREAT, 0644;

if(exist $logins{$name} )
{
print "User: $name existiert";
}
else
{
$logins{$name} = <- deine daten

}

und nach einem untie sind diese Daten gespeichert, fertig.

Nur im Moment kann ich die logdatei nicht ansehen da ich mit einer schleife ein dauer lauf bewirkt habe,welche meine error log auf über 700MB anstiegen liess ;-)

Falls dies wirklich der Fall ist, vergiß es!

Bei so einer Größenordnung ist DB_File hoffnungslos überfordert. Mach dir über richtig Datenbanken Gedanken. selbst mySQL hat Grenzen.

Nun jetzt hab ich es doch wieder rückgängig gemacht etwas anders
while (<DBM>){

Was ist denn dieses DBM? Das kam bisher nirgendwo vor und das brauchst du auch nicht.

Struppi.