Hast du mir zu deinen Erläuterungen auch ein Codebespiel?
Wenn ich das mal sehe, dann fällt mir bestimmt leichter das zu verstehen.
Danke.
Bitte
erzeuge leeren hash
my %h
iteriere über den Array
foreach( @a ){
extrahiere die Tokens und speichere sie in einem Buffer
my @t = split /[;,]/, $_;
# trennzeichen musst du selber kontrollieren
nimm die Conkatenation von NR und TYP als Key
prüfe ob der Key schon existiert.
if( exists $h{ $t[0] . $t[2] } ){
-- wenn ja
vergleiche die Grösse im Buffer mit der Grösse
die im hashelement gespeichert ist
$h{ $t[0] . $t[2] }[0] > $t[3]
? next
: $h{ $t[0] . $t[2] }[0] = $t[3]
;
}
else{
-- wenn nein
speichere als neues Hashelement
dessen Inhalt ein 2 Element Array ist:
mit der Grösse und mit dem originalen String.
push @{ $h{ $t[0] . $t[2] } } , $t[3], $_;
}
}
Am Schluss konvertiere den hash wieder in einen Array.
@a =();
foreach( keys %h ){
push @a, $h{$_}[1];
}
mfg Beat;
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o