Liebe Gemeinde,ich benötige Hilfe bei der Typumwandlung.
folgende Aufgabenstellung:
für die Steuerung einer Apparatur über Internet interagiert eine Messkarte mit einer Mysql-Datenbank, in welcher u.a. Sollwerte abgelegt werden.
Die Sollwerte können über ein Webformular verändert werden.
Die Werte werden über das CGI-Modul ausgewertet und in die Mysql-Datenbank geschrieben.
Problem:
Um Fehler bei der Eingabe abzufangen wird mit reg. Ausdrücken nach Fehleingaben gesucht, und die Werte ggf. entsprechend verändert.
Hier z.B. Komma - Punkt.
$p_max_Reaktor =~ s/,/\./g;
Da Perl offensichtlich die Zahl danach als Zeichenkette interpretiert, wird nachfolgend eine sonst sinnlose Rechenoperation mit der variablen angestellt, so dass Perl nunmehr mitbekommt, das es sich um eine Zahl handelt.
$p_max_Reaktor = $p_max_Reaktor +1;
$p_max_Reaktor = $p_max_Reaktor -1;
Anschließend wird der Wert unter Verwendung des DBI-Moduls in die Datenbank gespeichert (decimal(7,2)).
Das funktioniert auch ganz gut, aber :
wenn vom Webformular ein Wert <1 (also eine negative Zahl übergeben wird), dann wird der Wert nicht in die Datenbank geschrieben.
Frage:
Gibt es ev. eine Möglichkeit der direkten Typumwandlung in Perl?
Oder muss ich ggf. das Abfangen von Fehleingaben anders realisieren?
Danke schon mal vorab für die Hilfe.
Thomas
Datum: 01.11.2007-09:29
