martes, 22 de abril de 2008

Tercer ejercicio

Vamos a escribir un programa que cuente el número de líneas que no estén en blanco en un fichero, y lo escriba en un fichero de salida cuyo nombre se cree a partir del nombre del fichero original, con la extensión lc.

El código de nuestro programa es el siguiente:

my $leyendo = "diablocojuelo.txt";
if ( ! -r $leyendo ) {
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"
or die "No puedo abrir el fichero $leyendo.lc por $!\n";
my $cont = 0;
while (<$fh>) {
chop; chop;
$cont++ if $_;
}
print $fh_out "$cont\n";

close $fh;
close $fh_out;

Hemos usado cierta funcionalidad de perl que habíamos aprendido en el tutorial:
  • $! es una variable que contiene el último mensaje de error del sistema.
  • <$fh> lee la siguiente línea (incluido el \n) del fichero al que apunta $fh
  • $_ es la variable por defecto de perl. Si en algún sitio debería haber una variable y no la hay, entonces se está usando $_
  • chop elimina un caracter del final de la línea

No hay comentarios: