Gustl: Doppelte Listeneinträge entfernen

Beitrag lesen

Vorschlag: Kombiniere map und grep:

my @in = ('1;foo', '2;bar', '3;baz', '4;foo', '0;baz;2');

my %saw;
my @out = grep(!$saw{$}++, map((split(';', $))[1], @in));


>   
> Lediglich die Indexnummer deines split musst du noch an deine Bedürfnisse anpassen.  
>   
> Siechfred  
  
ok, map ersetzt schleife uns splittet @in in jeweils [1]. das (! ausrufezeichen) versteh ich nicht, heisst das wenn nicht ? grep extrahiert wert und füllt nach %saw den wert als name ? ich hab da irgendwo eine verständnislücke :(  
  
gustl