Bienvenido a los foros de Perl en Español.
Hay varias soluciones al problema. Una de ellas es como la que comentas: ir leyendo línea a línea hasta que encontremos nuestra matriz. Luego, ir leyendo la matriz hasta que encontremos otra matriz o fin de fichero:
Sea kk.txt nuestros datos:
- Código: Seleccionar todo
#Matriz1
1 1 1
2 2 2
2 2 2
#Matriz2
2 2 2
1 1 1
3 3 3
#Matriz3
3 3 3
1 1 1
2 2 2
#Matriz4
4 4 4
2 2 2
3 3 3
#Matriz5
5 5 5
2 2 2
3 3 3
#Matriz6
6 6 6
2 2 2
3 3 3
Entonces el código siguiente
Using perl Syntax Highlighting
#!/usr/bin/perl -l
use Data
::Dumper;
open MATRIXFILE
,"<kk.txt";
LOOP
:
while ( <MATRIXFILE> ) {
chomp;
if ( /^#Matriz5/ ) {
# Almacenamos la matriz en un array de arrays
while ( <MATRIXFILE> ) {
last if /^#/;
@fila = split;
push @matriz, [ @fila ];
}
last LOOP
;
}
}
close MATRIXFILE
;
print Dumper
\@matriz;
print $matriz[0
][2
]; # Primera fila, tercera columna de la matrizColoreado en 0.002 segundos, usando
GeSHi 1.0.8.4
genera la salida:
- Código: Seleccionar todo
$VAR1 = [
[
'5',
'5',
'5'
],
[
'2',
'2',
'2'
],
[
'3',
'3',
'3'
]
];
5