Hallo Struppi,
my %saw;
grep !$saw{( split/;/,$_)[2]}++ , @in;
my @out = keys %saw;
print join "\n", @out;
Anschaulicher finde ich diese (ähnliche) Möglichkeit:
~~~perl
sub unique {
my %saw;
map { $saw{(split /;/)[2]} = 0 } @_;
return( keys %saw );
}
Eine Aufzählung wie oft ein Element vorkommt ist nicht notwendig. Außerdem ist die Unterscheidung mit grep zw. im Hash bereits gesetzen und noch nicht gesetzen Werten überflüssig.
Jasmin