-c
, la cual le indica a Perl que debe compilar pero no ejecutar
el programa.
-w
use strict;al comienzo de su programa. Un pragma es una anotación en el código que afecta al proceso de compilación. El pragma use strict le indica al compilador de Perl que debe considerar como obligatorias un conjunto de reglas de buen estilo de programación. Entre otras restricciones, el uso del pragma implica que todas las variables (no-mágicas) deben ser declaradas explícitamente (uso de
my
, our
, etc.)
En general, se recomienda que todo programa incluya el pragma use strict.
use diagnostics;al comienzo de su programa. Esto ya activa el modo
-w
.
Vea un ejemplo. Dado el programa:
lhp@europa:~/projects/perl/src/perltesting$ cat diag.pl use warnings; use strict; use Perl6::Say; my ($x, $y) = (1,0); say $x/$y;Su ejecución produce el mensaje de error:
lhp@europa:~/projects/perl/src/perltesting$ perl diag.pl Illegal division by zero at diag.pl line 6.Mientras que la ejecución con diagnostics produce una descripción mas profusa:
lhp@europa:~/projects/perl/src/perltesting$ perl -Mdiagnostics diag.pl Illegal division by zero at diag.pl line 6 (#1) (F) You tried to divide a number by 0. Either something was wrong in your logic, or you need to put a conditional in to guard against meaningless input. Uncaught exception from user code: Illegal division by zero at diag.pl line 6. at diag.pl line 6
-d
de Perl.
Consulte el libro de Foley y Lester [4] para saber mas sobre el depurador. También podemos consultar http://debugger.perl.org/. En http://refcards.com/docs/forda/perl-debugger/perl-debugger-refcard-a4.pdf se puede encontrar una página de referencia (PDF).
nereida:/tmp/Perl-Critic-1.080# cat hello.pl print "Hello world!\n"; nereida:/tmp/Perl-Critic-1.080# perlcritic --brutal hello.pl Return value of flagged function ignored - print at line 1, column 1. See pages 208,278 of PBP. (Severity: 1) RCS keywords $Id$ not found at line 1, column 1. See page 441 of PBP. (Severity: 2) RCS keywords $Revision$, $HeadURL$, $Date$ not found at line 1, column 1. See page 441 of PBP. (Severity: 2) RCS keywords $Revision$, $Source$, $Date$ not found at line 1, column 1. See page 441 of PBP. (Severity: 2) Module does not end with "1;" at line 1, column 1. Must end with a recognizable true value. (Severity: 4) Code not contained in explicit package at line 1, column 1. Violates encapsulation. (Severity: 4) No "VERSION" variable found at line 1, column 1. See page 404 of PBP. (Severity: 2) Code before strictures are enabled at line 1, column 1. See page 429 of PBP. (Severity: 5) Code before warnings are enabled at line 1, column 1. See page 431 of PBP. (Severity: 4)La referencia PBP se refiere al libro Perl Best Practices [11] de D. Conway. En la dirección http://refcards.com/docs/vromansj/perl-best-practices/refguide.pdf Puede encontrar una tarjeta de referencia resumen con las 256 PBP del libro.
Casiano Rodríguez León