Este es el texto que procesa el script:
Using html4strict Syntax Highlighting
- <a class="pais" href="">USA</a></td>
- <td style="font-weight: bold; text-align:right;background-color:#FFEEAA;">dato USA</td>
- <a class="pais" href="">Spain</a></td>
- <td style="font-weight: bold; text-align:right;background-color:#FFEEAA;">dato Spain</td>
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Pongo el código:
Using perl Syntax Highlighting
- my $i = 0;
- my @total = ();
- @regexp = (".*pais.*>(.*?)<\/a",".*FFEEAA.*>(.*?)<\/t");
- procesar ($texto, \@regexp);
- sub procesar{
- my ($content,$regexp) = @_;
- my @lineas = split "\n" , $content;
- my @reg = @{$regexp};
- foreach (@lineas){
- if($_ =~ m{$regexp->[$i]}o){
- $total[$i] = $1;
- $i++;
- }
- if(scalar(@reg)==$i){last;}
- }
- print @total;
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
La intención es que imprima: USAdato Usa
Pero lo que imprime es: USASpain
El caso es que al encontrar la primera coincidencia, entra en el if() y recoge USA y aumenta el contador $i pero, y aunque con un depurador, me dice que el próximo patrón es el que busco, no hace caso y recoge de nuevo el primer patrón. ¿En qué me estoy equivocando?
Buenas tardes y saludos. LeoSevilla.