Thread Referenzierung von Teilmustern dynamisch ausgeben: Referenzierungs variable dynmaisch setze (18 answers)
Opened by eisbaermann at 2006-01-12 11:29

eisbaermann
 2006-01-12 11:29
#61724 #61724
User since
2006-01-12
3 Artikel
BenutzerIn
[default_avatar]
Schönen guten Tag,

im Augenblick bin ich an der Programmierung eines kleinen Statistik-Programms, dass persönliche Logfiles auswerten soll.

Die Logs werden auf bestimmte Muster hin untersucht und Teilmuster ausgegeben.

Da die ganzen Expressions stätig anwachsen und ich jedes mal den Code verändern muss, habe ich mir überlegt, das ganze etwas einfacher zu machen.

Mir kam die Idee das ganze erstmal durch ein Array zu realisieren.
Beispiel:
Code: (dl )
1
2
my %testar = ();
$testar{ 'reg1' } = { 'exp' => '\\/var\\/logs\\/logger\\/(\d*)\\/(\d*)', 'desc' => 2 };

'desc' gibt dabei an, welches Teilmuster eine besondere Bedeutung hat.
Es kann also auch vorkommen, dass ein Muster über 2 oder mehr Teilmuster verfügt.
Wichtig wäre immer das Teilmuster mit Nummer aus 'desc' zu erhalten.

Ich müsste also in der obigen TestExp das Teilmuster 2 erhalten.
Code: (dl )
print ("${ $testar{ 'reg1' }{ 'desc' } }\n");

würde bei deaktiviertem strict auch funktionieren. Das gefundene Teilmuster $2 wird ausgegeben.

Mit strict gibt es die üblichen Referenzierungsprobleme:
"Can' t use string as a SCALAR"

Für mich macht es nur wenig Sinn auf Grund dieses Problems strict abzuschalten.

Gibt es also eine saubere Möglichkeit die Variable zu expandieren?

Leider hatte ich bisher nur diese Idee, wenn jemand eine bessere Lösung wüsste, dann nur her damit.

Vielen Dank.

View full thread Referenzierung von Teilmustern dynamisch ausgeben: Referenzierungs variable dynmaisch setze