Beat: Array of Array / Union

Beitrag lesen

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