Mehrfache Einträge in einem Array finden
Christian Bliß
- perl
Hallo,
ich sollte in einem Array, das Zahlen enthält, mehrfache Einträge finden und bearbeiten. Genau genommen soll das Programm EINES der BEIDEN Doppelten Einträge inkrementieren. Dann läuft das Programm noch einmal durch, sollte es immer noch DOPPELTE Einträge geben, soll wieder EINES der BEIDEN inkrementiert werden. Das so lange, bis keine Mehrfacheinträge mehr vorhanden sind!
Bsp:
@array = (1, 8, 1, 8, 1);
Das Array sollte nach der Bearbeitung wie folgt aussehen:
@array = (1, 8, 2, 9, 3);
Wie kann ich das am besten realisieren?
MfG Christian Bliß
Hallo Christian,
ich sollte in einem Array, das Zahlen enthält, mehrfache Einträge finden und bearbeiten. Genau genommen soll das Programm EINES der BEIDEN Doppelten Einträge inkrementieren. Dann läuft das Programm noch einmal durch, sollte es immer noch DOPPELTE Einträge geben, soll wieder EINES der BEIDEN inkrementiert werden. Das so lange, bis keine Mehrfacheinträge mehr vorhanden sind!
eine schöne Aufgabe. In Anlehnung an man perlfaq4 "How can I remove duplicate elements from a list or array?":
for (my %saw = (); (scalar map { $_++ if $saw{$_}++ } @array) != keys(%saw); undef %saw) {}
Grüße,
Peter