Kleiner Vorschlag zur Datenbankabfrage noch:
$zeile = $dbh->selectrow_arrayref(qq{SELECT vorname, nachname FROM kunden WHERE kid=?},undef,$cookieValue);
Das ist etwas kompakter und auch sicherer, da du den Platzhalter nutzt und so das DBI-Modul das sauber an die DB weiterreicht.
Wenn du beim Verbindungsaufbau noch
uebergeben hast, kannst du eventuelle Fehler dann schoen mit eval abfangen:
eval {
$zeile = $dbh->selectrow_arrayref(qq{SELECT vorname, nachname FROM kunden WHERE kid=?},undef,$cookieValue);
};
if $@ {
... Fehlercode ...
}
Das Konstrukt mit eval ist gerade bei Postgresql ganz praktisch, wenn du mit Transaktionen arbeitest. Dann kannst du mehrere DB-Befehle in einen Block packen und am Ende auf Fehler pruefen und nen Rollback machen, wenn was schiefgelaufen ist.
Ich glaube, in der DBI-Doku sind da paar gute Beispiele zu drin.