Hallo,
ich habe in einem Programm, was ich jetzt übernehme, folgendes gefunden:
# $feld='Name'; $wert='Xaver'
my $rc=feldpruefung ($feld, $wert);
# ...
sub einzelfeldpruefung {
my %prueftab;
$prueftab{'Name'}=[\&test_mussfeld,\&test_ob_minlae3,\&too_much_chars,\&too_much_digits,\&test_ob_Name];
$prueftab{'PLZ'}=[\&test_ob_minlae5,\&test_ob_Ganzzahl];
$prueftab{'Ort'}=[\&test_ob_minlae2,\&too_much_chars,\&too_much_digits,\&test_ob_Adressteil];
$prueftab{'Mitteilung'}=[\&test_mussfeld,\&test_ob_minlae10,\&too_much_chars,\&too_much_digits,\&test_ob_Blanks];
# ...
my $feld = shift;
my $wert = shift;
for my $code_ref ( @{$prueftab{$feld}}) {
my $erg = $code_ref->($feld, $wert);
# ...
}
}
sub test_ob_minlae2 # 3, 5, 10
{
my ($feld, $wert) = @_;
if (length($wert) < 2) {return 0} else {return 1} # 3, 5, 10
}
Was mich darn stört, ist, dass bei den Routinen test_ob_minlae für jede Länge eine eigene Routine angegeben ist.
Gibt es eine Möglichkeit, in den einzelnen Regeln der %prueftab die Länge anzugeben und in e i n e r Routine test_ob_minlae diesen Parameter abzufragen?