2012-02-22T14:15:27 LiffiEine Alternativloesung koennte auch sein, die Ausgabe von get_intersection mithilfe eines der urspruenglichen Arrays zu sortieren.
Gibt es dabei einen besonders geschickten Weg (evtl. mit compare)?
1 2 3 4 5 6 7
my $lc = List::Compare->new(@lists); my @common = $lc->get_intersection(); my @common_orig_order; for my $elem (@{$lists[1]}) { push(@common_orig_order, $elem) if (grep (($_ eq $elem), @common)); }
1 2 3 4
my %common = map { $_ => 1 } %common; # schleife push @common_orig_order, $elem if $common{ $elem };
2012-02-23T17:48:53 pqCode (perl): (dl )my %common = map { $_ => 1 } %common;
Quotedenke nicht, dass das modul dafür was bietet, denn mengen sind ja im prinzip nicht sortiert, und bei einer intersection müsstest du dann eben auch definieren, nach der reihenfolge welcher der input-listen sortiert werden soll.