Chris: Konditionaloperator

Beitrag lesen

Hallihallo,

ich habe ein Problem mit dem Konditionaloperator.

In einem Formular wird eine E-Mail-Adresse eingetragen. Nun will ich einen simplen Check machen, ob die Adresse gültig ist oder nicht.
Falls sie es ist, speichere ich sie in %update_data, um sie später in die DB zu schreiben.
Ist sie nicht korrekt, wird sie nicht in die DB geschrieben und stattdessen eine CSS-Klasse gesetzt, um das entsprechende input-Feld hervorzuheben.

Die Funktion ist eigentlich egal, ich habe folgendes Code-Stück:

  
  (param('email') =~ m/^\w+@\w+\.\w+$/)  
      ? $update_data{'email'} = quote(param('email'))  
      : $class{'email'} = 'invalid_value';  

Das komische ist, dass $update_data{'email'} den Wert 'invalid_value' bekommt, wenn die Adresse gültig ist (also der Regex matcht).

Woran liegt das? Ich kann es mir einfach nicht erklären.

Grüße
Chris