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!
Nö nicht die datenbank sondern die errorlog datei,weil ich den schalter -w aktiviert hatte und der server nur noch warnungen ausspuckte.
Jo, hatte ich beim 2. lesen auch gemerkt.
while (<DBM>){
Was ist denn dieses DBM? Das kam bisher nirgendwo vor und das brauchst du auch nicht.
hab ich irgendwo wie z.B. http://iis1.cps.unizar.es/Oreilly/perl/learn/ch17_02.htm aufgefangen und übernommen.
Hab mich halt etwas festgefressen,eine datei öffnen zu müssen explizit zu flocken und wieder mit close zu schliessen.
Der flock bei DB_File ist keine Datei, d.h. du öffnest keine Datei, sondern erzeugst einen Handle um die Datei locken zu können.
wie du schon hier gelesen hast http://www.hk8.org/old_web/linux/cgi/ch10_02.htm
my $db = tie %hash, "MLDBM", $dbm_file, O_CREAT | O_RDWR, 0644;
Hier wird der HASH "getied"
my $fd = $db->fd; # Get file descriptor
Das ist (wenn ich dsas richtig verstehe) der Dateihnadle aus DB_File
open DBM, "+<&=$fd" ; # Get dup filehandle
mit Hilfe dieses Handles und der seltsamen Zeichen davor, bekommt man einen normalen Dateihandle.
flock DBM, LOCK_EX; # Lock exclusively
Den man dan locken kann.
Aber ansonsten wird mit DBM nichts mehr gemacht, es ist überflüssig.
und durch:
undef $db;
hast du auch keine Zugriff mehr darauf. weshalb close fehl schlägt.
Das close ist aber überflüssig, da untie die Datei ja schon schliesst.
Struppi.