[Cologne-pm] $${VariablenName} funktioniert nicht immer

Michael Lamertz mike at lamertz.net
Tue Jun 17 05:53:21 CDT 2003


On Tue, Jun 17, 2003 at 12:10:18PM +0200, Robert Meiser wrote:
> On Thu, 12 Jun 2003, A. Pagaltzis wrote:
> > Wenn du uns mehr erzählst, lässt sich mit Sicherheit ein sauberer
> > und wartbarer Ersatz finden.
> 
> Ok ihr habts nicht anders gewollt ;-)
> 
> Derzeitige Lösung:
> @Suchworte= Liste der im web tatsächlich ausgefüllten Felder
> (z.B. Vorname, Nachname...)
> foreach $Datei (readdir(..)) {
>   open $Datei
>   ($Vorname,$Nachname...)=split(':' $Datei)

Ahh!  Jetzt versteh' ich.  Nein, in diesem Fall ist ein Hash *wirklich*
die geeignete Methode.  Wenn Du Soft-Refs aus saemtlichen Parametern
machst, die Du ueber's Formular 'reinbekommst, dann kann jemand der via
Query-String eigene Form-Parameter erzeugt auf moegliche interne
Variablen zugreifen.  Bestenfalls gibt's 'ne Unknown-Variable Warning,
schlimmstenfalls trifft er 'was wichtiges und das ganze Ding fliegt Dir
um die Ohren.  Nimm 'nen Hash, Soft-Refs brauchst Du erst bei Monstern
ab Stufe 12.

> foreach $Datei (readdir(..)) {
>   open $Datei

Ouch!  In dem Fall wuerde ich die Daten aufbereiten und in einem
Dictionary zusammensaugen, statt bei jeder Anfrage alle Dateien erneut
zu durchsuchen.  Wirf einen Blick auf DBM und tie.  Jedesmal, wenn eine
Datei veraendert wird, dann kannst Du einen Aufbau- oder Korrektur-Job
laufen lassen.  Dass sollte die Sache vereinfachen.

Wenn Dir ein naechtlicher Job vom Intervall her zu langsam ist, dann
kannst Du diesen Teil notfalls auch in Dein Script einbauen, aber auch
in diesem Fall wuerde ich nur die neuen Dateien anfassen, und den Rest
aus 'ner DBM holen.

Intern stellt sich der Zugriff auf die DBM (fast) genau wie ein
Hash-Zugriff dar, so dass Du problemlos zwischen den implementationen
wechseln koennen solltest.

 ... restlicher Code nicht ungelesen ...

> Deshalb bin ich Jedermann und -frau für (auch grundsätzliche)
> Verbesserungsvorschläge dankbar.

Jetzt hast Du erstmal ein paar Denkanstoesse.  Wenn Du Details brauchst,
dann frag nach.

-- 
	    Well, then let's give that Java-Wussie a beating... (me)

Michael Lamertz                        |     +49 2234 204947 / +49 171 6900 310
Sandstr. 122                           |                       mike at lamertz.net
50226 Frechen                          |                 http://www.lamertz.net
Germany                                |               http://www.perl-ronin.de 



More information about the Cologne-pm mailing list