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:
<plugin-data-field key="displayName" >36473921</plugin-data-field>
Nun moechte ich in der
gesamten Datei die Strings tauschen durch:
<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:
foreach my $icq_number (@{$icq_numbers}) {
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