Thread Einbindung von Perl Modulen (5 answers)
Opened by tk102 at 2020-09-04 10:58

haj
 2020-09-05 20:44
#192505 #192505
User since
2015-01-07
557 Artikel
BenutzerIn

user image
2020-09-04T12:45:02 tk102
Oh, das ist ein guter Hinweis! Wobei das in meinem Anwendungsfall wohl eher keine riesen Rolle spielen wird.
Na ja, es reicht ja schon, wenn Dein Programm sich merkwürdig verhält, wenn in $Name oder $Message mal etwas drin ist, was in SQL Bedeutung hat. Zum Beispiel ist don't ein gültiger Name für eine Perl-Funktion, und der Apostroph kann auch in Namen und Dateinamen vorkommen. Platzhalter, wie vom Raubtier vorgeschlagen, sind nicht mal sonderlich kompliziert, dafür bist Du aber alle Unsicherheiten beim Inhalt der Datenbankfelder los.

2020-09-04T12:45:02 tk102
Wie genau bringe ich Perl dazu, die Verbindung offen zu halten?
Die Verbindung fällt dir runter, weil Du $DBLogdbh als lexikalische Variable (mit my) innerhalb Deines Unterprogramms deklariert hast. Nach einem Durchlauf geht $DBLogdbh "out of scope" - und damit wird die Datenbankverbindung automatisch geschlossen.

Die einfachste Möglichkeit, das zu verhindern: Deklariere my $DBLogdbh; vor Deinem Unterprogramm, aber in der gleichen Datei.

Um das Schließen der Datenbank-Verbindung brauchst Du Dich nicht zu kümmern, wenn Du es sowieso erst am Ende des Programms machen willst: Das erledigt Perl von alleine.

Und natürlich fällt Dir die Verbindung auch beim Aufruf von LogDb($Modul,"Z", "End"); abgebaut...

View full thread Einbindung von Perl Modulen