Martino: Cookies mit Perl verwalten

Hilfe, da ist ein Bug und ich werde ihn nicht los!

bei meinem Skript muss man sich einloggen und bekommt dann einen Cookie aufgebrummt (gleichzeitig geht der Wert in die Datenbank). Hat der Besucher keinen, kommt er zum Login, hat er einen so wird dieser mit dem in der Datenbank verglichen. Jetzt passiert ein Phänomen: der Wert in der Datenbank ist immer um eins weiter als der auf der Festplatte. d.h. wenn ich den von der Festplatte hole, ist schon wieder ein neuer in der Datenbank. Kann man sich einen dooferen Fehler vorstellen?

Folgendes:
#der Cookiewert entsteht
$sessionid = $time.$pid;

$cookie = $query->cookie(-name=>bridge2thinkLSC,
-value=>$sessionid,
-expires=>'+4h');

#wandert jetzt in die Datenbank...
...

#dann wird er an den Browser geschickt:
 print $query->header(-cookie=>$cookie,
      -location=>"$skript?aktion=superadmin&sprache=$sprache");
      exit;

#jetzt will ich den Cookie von der Festplatte holen:
    $cookiewert = $query->cookie('bridge2thinkLSC');

#und siehe da: $cookiewert ist noch der alte, in der Datenbank liegt schon ein neuer, oder mache ich etwas grundlegendes falsch?

Wende ich das cgi.pm für Setzen und Abfragen richtig an?

vielen vielen Dank, Martino