Ejecución y Pruebas

Sigue un ejemplo de ejecución. consideremos el fichero de entrada:

lhp@nereida:~/Lperl/src$ cat -n example1.input
 1  Esta linea no se imprime
 2  Esta linea si se imprime LHP
 3  Esta no
 4  Esta LHP si
 5  __END__
 6  y se acabo LHP
 7  esta linea tampoco sale
 8
al ejecutar el programa obtenemos:
lhp@nereida:~/Lperl/src$ cat example1.input | example1.pl
Esta linea si se imprime LHP
Esta LHP si

Es importante automatizar la prueba y guardarla junto con la aplicación. La costumbre es guardarla con el sufijo .t en un subdirectorio t/. Normalmente las pruebas usan la librería Test::More:

lhp@nereida:~/src/perl/src$ cat example1.t 
use Modern::Perl;
use Test::More tests => 1;

my $r = qx{cat example1.input | ./example1.pl 2>&1};
my $expected = << "EOS";
Esta linea si se imprime LHP
Esta LHP si
EOS
is($r, $expected, "smoke test with example1.input");
Ejecución de la prueba:
lhp@nereida:~/src/perl/src$ perl example1.t
1..1
ok 1 - smoke test with example1.input

Antes de seguir, responda a las siguientes preguntas:

Ejercicio 1.8.1   Consideremos el siguiente programa:
lhp@nereida:~/Lperl/src$ cat -n muerte_prematura4.pl
     1  #!/usr/local/bin/perl -w
     2  use strict;
     3  print while <STDIN>;
Véase un ejemplo de ejecución:

lhp@nereida:~/Lperl/src$ cat -E mp4.in2
0$
$
0$
lhp@nereida:~/Lperl/src$ cat mp4.in2 | muerte_prematura4.pl
0

0
Explique la salida. Conteste a las siguientes preguntas: Ayuda: recuerde que en Perl el retorno de carro que termina una línea leida queda almacenado en la variable ...

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19