Thread Arrays abgleichen (3 answers)
Opened by Kean at 2013-06-27 13:46

pq
 2013-06-27 13:58
#168631 #168631
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du musst einer solchen funktion referenzen übergeben. wenn du die arrays so übergibst, wird es zu einem einzigen array in @_.

du möchtest die schnittmenge (intersection) von 2 arrays. ist gut, wenn man den richtigen begriff weiss, dann kann man auch besser danach suchen. es gibt auch module auf CPAN.
man kann es aber auch selbst basteln:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
my @intersection = intersection(\@schraubenzieher, \@zange);
sub intersection {
    my ($x, $y) = @_;
    my %seen;
    @seen{ @$x } = (1) x @$x;
    # schaue, was von $y schon in %seen existiert und gib nur diese
    # elemente zurück
    return grep { $seen{ $_} } @$y;
}
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Arrays abgleichen