El caso es que tengo un fichero con x líneas, cada línea contiene varios datos separados por #, y tengo otro fichero con el primer dato de las primeras líneas del primer fichero y quiero sacar el segundo dato del primer fichero; tengo este código pero solo me saca los datos del primero, los siguientes no:
Using perl Syntax Highlighting
open(DATOSOFI, "oficina.txt") || die ("No se puede abrir el fichero oficina.txt");
open(OFICINAS, "ofis") || die ("No se puede abrir el fichero ofis");
while ($ofi = <OFICINAS>) {
$oficina = sprintf("%05d", $ofi);
for ($x=0; $x<=scalar($oficina); $x++) {
foreach $datos (<DATOSOFI>) {
my @ofi = split("#", $datos);
if($ofi[2] == $oficina) {
print $oficina." - ".$ofi[3]."\n";
}
}
}
print $oficina."\n";
}
open(OFICINAS, "ofis") || die ("No se puede abrir el fichero ofis");
while ($ofi = <OFICINAS>) {
$oficina = sprintf("%05d", $ofi);
for ($x=0; $x<=scalar($oficina); $x++) {
foreach $datos (<DATOSOFI>) {
my @ofi = split("#", $datos);
if($ofi[2] == $oficina) {
print $oficina." - ".$ofi[3]."\n";
}
}
}
print $oficina."\n";
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
He de decir que sin el for también lo he hecho, pero lo he intentado tantas veces que ya no sabía qué hacer, el caso es que solo entra al for el primer dato:
- Código: Seleccionar todo
perl 1.pl
02563 - LA TORRECILLA
02563
03659
01259
00365
02156
LO SIENTO, NO ME EXPLICO NADA BIEN XD