linux-l: wiedermal perl

Ulrich Wiederhold U.Wiederhold at gmx.net
Mi Okt 31 12:36:52 CET 2001


Hi,
* Steffen Dettmer <steffen at dett.de> [011030 13:25]:
> * Ulrich Wiederhold wrote on Mon, Oct 29, 2001 at 17:03 +0100:
> > * Robert C. Helling <helling at aei-potsdam.mpg.de> [011029 16:17]:
> > Der String ist der kompletter Pfad mit Filenamen. Insgesammt so um die
> > 20.000 Files.
> 
> also 1MB Daten? Ist auch nicht wenig.
eher 1.7 bis 1.8 MB

> > Ich werde das jetzt mal im Betrieb testen. Vielleicht kann man es ja so
> > schon verwenden. Wenn jemand noch ne Idee hat... 
> brauchst Du unbedingt regex? Oder geht auch string-vergleich,
> evtl. substring? Wäre schneller.

hmmm, bei nem Stringvergleich müßte ich ja jedes Wort im Path und im
Filenamen mit jedem Suchwort vergleichen. Ich denke mal, daß würde dann
summa summarum wieder länger dauern, oder sehe ich das falsch?

> Brauchst Du die Suche (auf gleichen Daten) öfter? Dann erstell
> Dir einen Index. Nimm einen Hash, der als keys die Suchworte hat,
> und als value ne Liste mit Treffern oder Referenzen auf die
> Treffer. 
Hmm, das ist ne gute Idee. Ich müßte also beim Erstellen der Datei ein
Indexverzeichnis erzeugen...
Da muß ich nochmal drüber nachdenken, das könnte ziemlich kompliziert
werden, und so ne Indexerstellung sollte ja auch nicht zu lange
dauern...
Quasi beim Erstellen jeden File mit Path in die Worte aufteilen, Worte
wie /der/die/das/in/auf/unter/the/a ignorieren und alle anderen als key
in ein Hash scheiben, als Value den "PathMitFilenamen" zuordnen (wohl am
besten als Referenz, da ja pro "key" sicher mehrere Filenamen matchen
werden. Dann bei der Ausgabe noch sicherstellen, daß nur noch "values"
ausgegeben werden, die in "key1" und "key2" enthalten sind...
Das wird ne Menge Arbeit, ob sich das lohnt?

> Den Hash kannst Du z.B. mit Data::Dumper speichern und
> require lesen. Zugriff ist nach dem Bauen dann richtig schnell. 
Damit wollte ich mich sowieso schon mal auseinandersetzen, wegen der
konfigurationsdatei (die ich derzeit aus einem File in ein hash
einlese).

> Fragt sich nur, was Du möchtest...
Schwer zu sagen, ob das soviel schneller ist das sich der Aufwand
lohnt... allerdings könnte man auf diesen Index wieder nen anderes
Script aufsetzen, welches z.B. unabhängig von dem Script nach bestimmten
Files suchen kann oder zur Archivierung...

Aber dbase gibts ja schon...
Danke.
Uli

-- 
'The box said, 'Requires Windows 95 or better', so i installed Linux - TKK 5



Mehr Informationen über die Mailingliste linux-l