undef %saw; @out = grep(!$saw{$_}++, @in);
hab ich im archiv gefunden. weiss nicht ob ich das überhaupt verstehen will :) aber ich brauchs.
wie sag ichs in perl wenn mein $_ aus mehreren positionen besteht und ich davon nur das dritte element brauche ? also so:
$in[0] "frosch;gruen;333;quak;sommer"
$in[1] "kroete;grau;333;quaak;herbst"
$in[2] "amsel;grau;533;sing;abend"
$in[3] "spatz;grau;433;sing;morgen"
$in[4] "katze;weiss;433;miau;immer"
$in[5] "katze;schwarz;533;frisst;maus"
$in[6] "frau;schwarz;333;ist;schoen"
$in[7] "frau;weiss;433;ist;alt"
...@out muss dann heissen:
$out[0] "333"
$out[1] "533"
$out[2] "433"
z.b. auch so:
use strict;
my @in = (
"frosch;gruen;333;quak;sommer",
"kroete;grau;333;quaak;herbst",
"amsel;grau;533;sing;abend",
"spatz;grau;433;sing;morgen",
"katze;weiss;433;miau;immer",
"katze;schwarz;533;frisst;maus",
"frau;schwarz;333;ist;schoen",
"frau;weiss;433;ist;alt"
);
my %saw;
grep !$saw{( split/;/,$_)[2]}++ , @in;
my @out = keys %saw;
print join "\n", @out;
Struppi.
--
Javascript ist toll (Perl auch!)
Javascript ist toll (Perl auch!)