use Data::FormValidator::Constraints qw(:closures FV_length_between FV_min_length FV_max_length); use Data::FormValidator::Filters; { profil_name_1 => { required => [qw( lastname ) ], # Entferne alle führenden und folgenden Leerstellen von den Werten der Formularfelder filters => ['trim'], field_filter_regexp_map => { qr/(?:phone|mobile)$/ => sub { my $value = shift; $value =~ s§[-/ ]§§g;#Entferne Füllzeichen '/', '-' ' ' aus Telefonnummern return $value; }, }, # alle Felder deren name mit regexp übereinstimmen, bekommen passenden validator zugewiesen constraint_method_regexp_map => { # !Not like in doku on cpan with notation 'email' or 'email()'. That wouldn't work. qr/email$/ => [email(),FV_length_between(6,50)], qr/lastname$/ => FV_length_between(2,30) }, msgs => { # Präfix für Variablen des Formulars die fehlerhaft sind erhalten Namensschema error_ prefix=> 'error_', # Fehlertext für Variablen die als Required markiert waren erhalten diesen Fehlertext als Wert, welcher unten im format Schlüssel als %s Argument eingefügt wird missing => 'This value is required', # Fehlertext für Variablen, welche eine der Bedingungen, die für Sie definiert wurden verletzt haben invalid => 'Invalid value inserted', # Trennzeichenkette für das auftreteten von mehreren Bedingungsverletzungen für eine Variable aus dem Formular invalid_separator => "
\n", # Die Variablen mit Namensschema error_ bekommen diesen Fehlertext als Wert zugewiesen. %s ist entweder der Wert von missing oder von invalid format => '%s', # if a constraint is violated with one of this names, than create a custom error mmessage instead of the text in format. # length_between is the inlined name of FV_length_between(x,y). Just use the subname without brackets and params as name. constraints => { 'length_between' => 'To short or to long', 'email' => 'Not a valid email adress', }, # if any error is returned by msgs function then hash key 'errorflag' will be defined aka gets value 1 any_errors => 'errorflag', } } }