Hallo,
ich habe ein Problem mit dem ich nicht so recht weiterkomme.
Ich lese aus einer Datei mehrere tausend Telefonnummern in ein Array ein.
Aus diesem Array sollen doppelte Werte und leere Werte entfernt werden, aber gleichzeitig soll festgehalten werden, welche Werte doppelt enthalten sind.
Ich habe dafuer zwar ein funktionierendes Script, aber es ist ein riesiger Aufwand, vor allem wenn man bedenkt, dass es sich um ein paar tausend Daten handelt und um das Ziel zu erreichen mehrere Arrays mit den gleichen Daten gefuellt werden muessen (bei sort muss lt Beschreib8ung immer ein neues Array verwendet werden)
Hier mal mein script. Ich habe es auf der Konsole ausgefuehrt und lasse mir die Ergebniss nach der Operation anzeigen, damit ich weiss, ob alles klappt.
Ich denke es muesste fuer dieses Script eine Optimierung geben, die mir als Non-perl-profi aber nicht einfaellt.
Hat jemand Optimierrungsvorschlaege?
Mich stoert vor allem, dass ich bei grossen Datenmenegen (z.B. 10.000) mehrere Arrays mit den gleichen Daten habe, was ja irgendwo auch unnoetigen Speicherplatz verbraucht.
Hier mein Script:
#!/usr/bin/perl
use strict;
use warnings;
# Daten einlesen
my @Zeilen = ('49721509666000','17024470924','4918059701116000','491771784144','17078850469','49721509666000','','284765769609','','17024470924','49721509666000');
# Sortieren und zur Pruefung auf Console ausgeben
my @neuzeilen1 = sort(@Zeilen);
# Doppelte in separates Atrray einstellen und im Hauptarray leeren
my $oldwert = '';
my @doppelte;
for(my $iiz=0;$iiz
Also wie gesagt: Das Script funktioniert. Es geht nur um die Optimierung von Speicherplatz und Rechenleistung bei grossen Mengen
Chris