Este segundo quiero que lo elimine, porque ya está incluido en el primero. Y si tengo otro que sea: d1, d2, d3, d4 quiero que elimine el primero ya que ese primero está incluido en este último.
El caso es que lo he implementado con grep() (código de abajo) y el script va superlento cuando tengo muchos elementos. ¿Se os ocurre otra estrategia para resolver el problema?
Gracias por adelantado,
Iam.
Using perl Syntax Highlighting
# Check for repeated or inclusive windows
my $repeat = 0;
for (my $i = 0; $i <= $#w; $i++) {
my $rep = 0;
foreach my $h2 (@h2) {
next unless (grep /$h2/, @{$w[$i]});
$rep++;
}
if ($rep == $#h2 + 1) { # for repeated window
$repeat = 1;
last;
} elsif ($rep == $#{$w[$i]} + 1) { # for new window larger than a previous one
splice (@w, $i, 1);
next;
}
}
# Only non-repeated window (good result)
next if ($repeat == 1 || $#h2 < 1);
push @w, \@h2;
my $repeat = 0;
for (my $i = 0; $i <= $#w; $i++) {
my $rep = 0;
foreach my $h2 (@h2) {
next unless (grep /$h2/, @{$w[$i]});
$rep++;
}
if ($rep == $#h2 + 1) { # for repeated window
$repeat = 1;
last;
} elsif ($rep == $#{$w[$i]} + 1) { # for new window larger than a previous one
splice (@w, $i, 1);
next;
}
}
# Only non-repeated window (good result)
next if ($repeat == 1 || $#h2 < 1);
push @w, \@h2;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4