User since
2003-09-14
142
Artikel
BenutzerIn
Hallo
Ich wollte fragen ob ich besser einen arrey oder 5-6 einzel variblen verwende um daten die ich einmal eingebe (passwort...) und die dann immer im Skript verwendet werden.. ?
Was sind vor und nachteile?
Patrick Müller
P.S. Geändert muss nicths werden an den Daten.
User since
2003-08-21
2614
Artikel
ModeratorIn
Ich wuerde entweder einen Hash oder einzelne Variablen nehmen. Denn dann hat jeder Wert seinen eigenen Namen. Anderenfalls muesstest Du Dir die Zahlen merken, und das geht leicht schief. Als abschreckendes Beispiel siehe die SELFHTML-Beschreibung von
getpwent. Die sind da naemlich auch durcheinandergekommen mit den Array-Indices.\n\n
<!--EDIT|betterworld|1066509650-->
User since
2003-08-04
1706
Artikel
HausmeisterIn
Also das ist letztendlich dir überlassen.
Ich würde eher zu einem Array tendieren, da man dann nicht in evtl. Namensnot der Variablen kommt.
Hashes sind natürlich auch bequem, jedoch mehr speicher bedürftig. Das das ist erst ab einer gewissen größe des Programms zu berücksichtigen.
Gruß Alex
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
@format_c: Was meinst du mit "Namensnot"?
@ppm1: Es kommt etwas darauf an, ob du schon absehen kannst, wieviele Werte es sein werden. Bei zwei bis drei Werten wuerde ich der Einfachheit auch einzelne Skalare nehmen; wenn es mehr werden koennen - so etwas passiert oft schneller, als man sich das anfangs traeumen laesst - wuerde ich auf jeden Fall einen Hash empfehlen.
Ein Array halte ich fuer die schlechteste der Varianten. Die paar Bytes Overhead pro Hasheintrag werden erst bei Hunderten von Werten relevant, dafuer muss man mit den Indizes aufpassen.
Ein Kompromiss waere die Verwendung eines Arrays mit Konstanten als Indizes - so wie man es evtl. in C machen wuerde. Sehr "perlig" ist das aber eher nicht, dafuer ist es ziemlich "tippfehlersicher".
User since
2003-08-04
5873
Artikel
ModeratorIn
Für die Tippfehlersicherheit kann man den Hash ja auch gegen die Eintragung weiterer Keys sichern. Ich hab neulich gerade etwas dazu gelesen, aber hab leider gerade die genaue Syntax dafür vergessen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
[quote=Crian,20.10.2003, 16:24]Für die Tippfehlersicherheit kann man den Hash ja auch gegen die Eintragung weiterer Keys sichern. Ich hab neulich gerade etwas dazu gelesen, aber hab leider gerade die genaue Syntax dafür vergessen.[/quote]
lock_keys() aus Hash::Utils? (aka "restricted hashes", seit 5.8.0 bei Perl dabei! )
Ja, auch eine gute Idee. Vor allem braucht man dafuer nicht viel am Code zu aendern, nur an passender Stelle den Hash zu sichern. :)