Estoy con un programa en Perl que me lee de un fichero en busca de una cadena de caracteres específica en cada una de las líneas. Si encuentra la cadena en el fichero realiza una acción y sino otra. Este es el código:
Using perl Syntax Highlighting
my $msg = "Cadena a buscar";
my $found = 0;
open (LOG_FILE, '<'.$output_file_path);
while (my $line = <LOG_FILE>) {
if ( $line=~ m/$msg/ ) {
$found = 1;
};
}
close(LOG_FILE);
if ($found != 0){
print "Encontrado cadena en fichero";
}
else {
print "No he encontrado nada";
}
my $found = 0;
open (LOG_FILE, '<'.$output_file_path);
while (my $line = <LOG_FILE>) {
if ( $line=~ m/$msg/ ) {
$found = 1;
};
}
close(LOG_FILE);
if ($found != 0){
print "Encontrado cadena en fichero";
}
else {
print "No he encontrado nada";
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Este programa me funciona bien. Cuando en el fichero se encuentra la cadena "Cadena a buscar", por pantalla sale "Encontrado cadena en fichero" y sino "No he encontrado nada".
Mi problema viene cuando intento que el bucle del while termine cuando encuentre la cadena que busco. Es decir, si el fichero tiene 1000 líneas y encuentra en la cadena en la primera, que termine para no continuar leyendo.
Así que si pongo:
Using perl Syntax Highlighting
En este caso, que se supone que debería parar cuando $found = 1, el bucle continúa y además siempre se me va por el "else", es decir, esté o no esté la cadena que busco en el fichero, me sale siempre por pantalla
"No he encontrado nada".
¿Alguna ayuda por favor?
¡Gracias por adelantado!
Ciao