Beat: Array of Array / Union

Beitrag lesen

ich hab folgenes File:

NR 1;Zeitstempel A;Type A, Groesse 1
NR 2;Zeitstempel B;Type B, Groesse 2
NR 3;Zeitstempel B;Type C, Groesse 3
NR 1;Zeitstempel C;Type A, Groesse 1
NR 2;Zeitstempel A;Type A, Groesse 2
NR 3;Zeitstempel X;Type A, Groesse 3
NR 1;Zeitstempel B;Type A, Groesse 4
NR 2;Zeitstempel A;Type B, Groesse 1
...

Nun muss ich es irgendwie hinbekommen, das ich doppelte Einträge rausfiltere.
Und zwar wenn NR und Type identisch sind, dann muss die Grösse verglichen werden und es soll dann die "doppelte" Zeile mit der kleineren Grösse rausfliegen.
Ich hoffe das ist soweit verständlich?!

Erzeuge aus den Daten einen Hash
Denn Hashkeys sind einmalig in Perl

erzeuge leeren hash
iteriere über den Array
extrahiere die Tokens und speichere sie in einem Buffer
nimm die Conkatenation von NR und TYP als Key
prüfe ob der Key schon existiert.
-- wenn nein
  speichere als neues Hashelement
  dessen Inhalt ein 2 Element Array ist:
  mit der Grösse und mit dem originalen String.
-- wenn ja
  vergleiche die Grösse im Buffer mit der Grösse
  die im hashelement gespeichert ist

Am Schluss konvertiere den hash wieder in einen Array.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o