Moin,
Mit "perfekt" meine ich eher die Bedeutung wie in "perfekter Hash", nicht die allgemeine Bedeutung.
Es wäre hier also stets zuerst zu prüfen, ob die Variable existieren darf. Erst dann kann damit gearbeitet werden.
Es gibt also kein "ungefähr", statistische Wahrscheinlichkeiten reichen nicht aus und ein Fallback existiert nicht.
hmm, ist es nicht ziemlich egal, ob eine variable existieren darf oder nicht?
<form action="bla.pl">
<input type="text" name="blub" />
<input type="text" name="fred" />
</form>
%formdaten=&hole_form_daten;
print $formdaten{'blub'};
__END__
da ist doch jetzt völlig egal ob die variable/hasheintrag fred existiert oder nicht, weil sie nicht verwendet wird.
Das alles schützt natürlich nur eine Manipulation innerhalb der Namenskonvention also nur innerhalb des Variablen_namens_ nicht innerhalb der Variable selber also dem Inhalt der Variable. Deine Version der ungarischen Notation stellt nur den Typ des Inhaltes sicher.
Nicht das ich das schlechtmachen möchte -- bewahre! -- aber Du stehst dabei immer noch vor dem Problem der Dir fast (Typ ist ja einschränkbar) völlig unbekannten Daten selber, die mußt Du immer noch prüfen.
ich glaube wir reden aneinander vorbei ;):
~~~html
<input type="text" name="int_5_test" value="200" />
würde im skript zu anfang folgendermaßen verarbeitet werden (die kurzform):
~~~perl
#[..]
$REGS{int}='[^0-9]';
$original_name='int_5_test';
#der name wird auseinander genommen und den variablen type und length zugeordnet, der inhalt wird der variable inhalt zugeordnet
$type='int';
$length=5;
if (length($inhalt > $length) || $inhalt=~/$REGS{$type}/){
die "fehler, ungültige länge oder zeicheneingabe";
}
else
{
$erlaube_variablen{$original_name}=$inhalt;
}
es wird vorher natürlich auch geprüft, ob der variablenname selbst in ordnung ist. Ob! der int dann im endeffekt in der funktion, in der er später benutzt wird, im gültigen wertebereich liegt, dass muss und kann (nur) die funktion selber prüfen.
Ja, aber gräme Dich nicht, mitunter erwische ich mich auch noch dabei, das ich das Rad neu erfinde. Aber es erfordert halt Disziplin, vor _jedem_ neuem Ansatz nachzuschauen, ob das nicht schon jemand anderes gebastelt hat und das meist auch noch besser ;-)
selber lernen macht schlau ;)
gruss
--
no strict;
no warnings;
79.78 cups of Coffee (Brewed) + Me = Death
Kalorien sind winzig kleine nachtaktive Tiere, die unbeobachtet menschliche Kleidung enger nähen.