Manche Internet-Applikationen, darunter sogar bekannte Onlineshops, erlauben bei "Menge" oder "Preis" die Eingabe von Buchstaben oder Sonderzeichen. Oft wird empfohlen, die Prüfung der Formulareingaben per Javascript zu erledigen. Doch was geschieht, wenn der Client-Browser Javascript deaktiviert hat ? Wird die Seite nicht vollständig übertragen, fehlt u.U. das notwendige Stück Javascript-Code im Dokument.
Fehlerhafte Werte in den Datenbanken, die die Eingaben speichern sollen, sind die Folge, oder die Daten werden nicht bzw. fehlerhaft abgelegt.
Frühere Versuche mit der in Perl sehr leistungsstarken Mustererkennung, z.B.
if ($string =~ m/[^0-9-.]/g) {goto fehler};
führten zu folgenden Schwächen, denen man mit Perl nicht so richtig zu Leibe rücken konnte:
Statt dessen kann man den eingegebenen Wert einfach nur mit "1" multiplizieren.
Perl ist sehr leger im Umgang mit seinen Variablentypen. Bei fast allen Programmiersprachen muß man genau definieren, ob es sich um eine Integer-, String- oder Gleitkommazahlvariable handelt. Bei Perl ist dem nicht so - warum sich das nicht zu Nutze machen ? Perl wandelt jede Variable in einen numerischen Wert um, sobald man damit zu multiplizieren versucht. Wird ein Buchstabe statt einer Zahl eingegeben, wandelt Perl diese Eingabe in eine numerisch exakt definierte Null um.