Vale, ya lo pillo...
El problema era que no filtrabas todos los caracteres tabulador. Solo quitabas uno. Deberías poner un
/g en el operador sustitución para que lo haga a lo largo de toda la línea.
Otra forma de leer las coordenadas se puede hacer así:
Using perl Syntax Highlighting
my @Tabla;
while (<>) {
if (/<(coordinates)>(.*)<\/\1>/) {
my @coordenadas = split ',', $2;
push @Tabla, @coordenadas[0
,1
];
}
}
use Data
::Dumper;
print Dumper
\@Tabla;Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
En la expresión regular, buscamos la etiqueta
<coordinates>, capturamos lo que le sigue, hasta la próxima etiqueta de cierre. Usamos un par de paréntesis de captura alrededor de
coordinates para no tener que volver a escribirlo al final (lo ponemos con
\1 que equivale a ese primer par de paréntesis de captura).
Luego, hacemos el split() correspondiente, pero solo del segundo par de paréntesis (
$2). Y guardamos los dos primeros valores en la @Tabla.
Sale:
- Código: Seleccionar todo
$VAR1 = [
'-7.047238052712176',
'38.9158011696726',
'-6.906189289274064',
'38.83413135517162'
];
Las dos líneas del if() se pueden resumir en
Using perl Syntax Highlighting
push @Tabla, (split ',', $2)[0
,1
];Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
pero nos movemos en el terreno de los listillos...