Leser: 2
![]() |
|< 1 2 3 >| | ![]() |
24 Einträge, 3 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/perl
use strict;
use warnings 'all';
use Data::Dumper;
my @found = ("10\tdomain-a", "12\tdomain-b", "5\tdomain-c",
"8\tdomain-a", "14\tdomain-b", "15\tdomain-c",
"11\tdomain-a", "13\tdomain-b", "10\tdomain-c");
# get doubles
my %seen;
foreach my$i (0..$#found) {
my @ele = split("\t", $found[$i]);
$seen{$ele[-1]} = [] unless $seen{$ele[-1]};
push(@{$seen{$ele[-1]}}, [$i, $ele[0]]);
}
# delete doubles
foreach my$key (keys %seen) {
if (@{$seen{$key}} > 1) {
# sort
my $top = $seen{$key}->[0];
foreach my$act (@{$seen{$key}})
{ if ($act->[1] > $top->[1]) { $top = $act } }
# splice
foreach my$act (@{$seen{$key}})
{ if ($act->[0] != $top->[0]) { $found[$act->[0]] = undef } }
}
}
@found = grep { defined($_) } @found;
# output
print "\@FOUND:\n", Dumper(\@found), "\n";
1
2
my %seen;
@found = grep { !$seen{$_->[-1]}++ } sort { $b->[0] <=> $a->[0] } map { [split("\t", $_)] } @found;
1
2
my %seen;
@found = grep { !$seen{$_->[-1]}++ } sort { $b->[0] <=> $a->[0] } map { [split("\t", $_)] } @found;
![]() |
|< 1 2 3 >| | ![]() |
24 Einträge, 3 Seiten |