miércoles, 23 de abril de 2008

Ejercicio 2: Programa "cuenta líneas"

El segundo ejercicio que hemos hecho en Perl consiste en un programa que lee un fichero, cuenta el número de líneas que no están en blanco en dicho fichero, y escribe este valor en otro fichero cuyo nombre es igual al del fichero de entrada, pero con extensión .lc.

Solución:
El código de este programa es el siguiente:

my $leyendo = "prueba.txt"; #Nombre del fichero que se va a leer

#Abrir los ficheros. Uno en modo lectura ("<") y otro en modo escritura (">")
if ( ! -r $leyendo ) { #comprobar si el fichero se puede leer
die "El fichero $leyendo no es legible\n";
}
open my $fh, "<", $leyendo
or die "No puedo abrir el fichero $leyendo por $!\n";

open my $fh_out, ">", "$leyendo.lc";

#Crear e inicializar el contador de líneas
my $contador;
$contador = 0;

#Recorrer línea a línea el fichero
while (<$fh>) {
chop; chop; #quita los dos caracteres del final de la línea (el retorno de carro)
$contador++ if $_; #si queda algo en la línea (no está vacía), la cuento
}

#Imprimir el resultado de la cuenta en el fichero de salida
print $fh_out "El fichero tiene $contador líneas con texto\n"; #imprimir el número de líneas en #el fichero de salida

#Cerrar los ficheros
close $fh;
close $fh_out;

No hay comentarios: