zehner: String durchsuchen und Ergebnisse in Array speichern - Nur wie?

Hallo liebes Forum,

ich habe folgendes vor und leider noch nicht den rechten Ansatz gefunden:

Ich habe in einer HTML-Seite, die im Vorfeld in die Variable $text eingelesen wurde, an diversen Stellen kleine Einfügungen zu machen und habe diese Stellen mit der Kennzeichnung ??insert_VARIABLENNAME?? versehen. Diese Stelle soll dann durch die entsprechende Variable mit dem jeweiligen Namen, nennen wir ihn pauschal "VARIABLENNAME", ersetzt werden.

Da allerdings die Anzahl an potentiellen Variablen recht groß ist (>500 Stck), halte ich es für nicht sehr sinnvoll, bei jedem Aufruf alle 500 Variablennamen samt Wert aus der MySQL-DB zu ziehen, in ein Hash zu laden und dann per Regulären Ausdruck einfach einzusetzen.
So ist es derzeit gelöst und natürlich nicht sehr performant.

Daher habe ich mir überlegt, dass es viiiiel sinnvoller wäre, zuerst einfach die ganze HTML-Seite, sprich "$text" nach den ??insert_VARIABLENNAME?? zu durchsuchen, die verschiedenen "VARIABLENNAMEn" in einem Array zu speichern und einfach nur diese benötigten Variablen samt Werte aus der MySQL-DB zu laden und dann einzufügen.
Sprich: So muß ich nur vielleicht 25 statt >500 Werte bei jedem Aufruf einlesen.

Ich hoffe, ich konnte den Sachverhalt einigermaßen verständlich beschreiben und einer von euch Perl-Cracks hat eine gute Idee, wie ich das Problem lösen kann.

Vielen Dank im Voraus,

Zehner

  1. Hallo,

    [...] und habe diese Stellen mit der Kennzeichnung ??insert_VARIABLENNAME?? versehen. Diese Stelle soll dann durch die entsprechende Variable mit dem jeweiligen Namen, nennen wir ihn pauschal "VARIABLENNAME", ersetzt werden.

    Da allerdings die Anzahl an potentiellen Variablen recht groß ist (>500 Stck), halte ich es für nicht sehr sinnvoll, bei jedem Aufruf alle 500 Variablennamen samt Wert aus der MySQL-DB zu ziehen, in ein Hash zu laden und dann per Regulären Ausdruck einfach einzusetzen.

    als allererstes würde ich die RegExpe entsorgen, durch einfache Stringoperationen ersetzen und den Performanceunterschied messen.

    Als zweites auf die benötigten reduzieren und erneut messen.

    Freundliche Grüße

    Vinzenz

  2. hi!

    ich habe folgendes vor und leider noch nicht den rechten Ansatz gefunden:

    Ansatz: verwende was fertiges ;)

    http://perl.apache.org/docs/tutorials/tmpl/comparison/comparison.html

    bye, Frank!

    --
    Never argue with an idiot. He will lower you to his level and then
    beat you with experience.