Thread Probleme mit komplexem Sachverhalt
(5 answers)
Opened by RPerl at 2008-03-26 19:18
Hallo Jungs,
Hallo Maedels, ich hab mal wieder eine Frage bzgl. Perl. Diesmal leider etwas (deutlich) komplexer. Es sieht so aus: Ich habe 1 Array mit Nummern. Beispiel: 1. 36473921 2. 462283 3. 19793929 [...] Dann habe ich 1 Hash, der als Schluessel, die Nummern aus dem Array enthaelt. Beispiel: 36473921=> Peter 462283 => Franz 19793929 => Guido Jetzt habe ich eine Datei, die so einen String enthaelt: Code: (dl
)
<plugin-data-field key="displayName" >36473921</plugin-data-field> Nun moechte ich in der gesamten Datei die Strings tauschen durch: Code: (dl
)
<plugin-data-field key="displayName" >$hash{'36473921'}</plugin-data-field> In dem Beispiel oben, also "Peter" anstelle von der Nummer anzeigen. Irgendwie ist meine Loesung nicht lauffaehig. Ich weiss nicht warum. Folgendes ist meine (nicht lauffaehige) Loesung: Code (perl): (dl
)
1 2 3 4 5 6 7 8 # loop over all icq numbers foreach my $icq_number (@{$icq_numbers}) { # loop over all lines foreach my $line (@raw_file_content) { ($line = $line) =~ s!<plugin-data-field key="displayName" >$icq_number</plugin-data-field>!<plugin-data-field key="displayName" >$username_icq->{$icq_number}</plugin-data-field>!; print $line; } } @raw_file_content enthaelt die Datei. Auch die Zeilen die ich bearbeiten muss. @icq_numbers enhaelt die Nummern. %username_icq enthaelt die Zuordnungen von Nummer => Name Wenn ich meinen code starte, bekomme ich eine viel groessere Datei die allen anschein nach doppelte Zeilen hat. Also muss wohl irgendwas nicht stimmen. ich hoffe ich konnte mein Problem ausreichend beschreiben, es ist sehr komplex. Wenn jemand etwas Zeit und Lust hat, kann derjenige / diejenige ja mal kurz reinschauen und mir helfen. Ich bedanke mich fuer's Lesen und wuensche einen angenehmen Abend! Gruss rperl |