mac - ¿Hay alguna manera de activar el seguimiento en Perl(equivalente a bash-x)?
perl para linux (4)
Debería ver "perl -d" (activar el depurador) o "perl -c" (verifique su script antes de ejecutar
Tengo una secuencia de comandos del sistema en Perl. Necesito un equivalente de bash -x para determinar qué está pasando mal con el script. ¿Hay algo equivalente?
EDITAR: Lo que bash -x hace es que imprime cada línea a medida que se evalúa. Esto hace que el código de depuración que simplemente falta una variable de ruta o archivo sea muy fácil.
El módulo Devel::DumpTrace
ha estado disponible desde 2011.
Uso de muestra:
$ cat demo.pl
# demo.pl
# a demonstration of Devel::DumpTrace
$a = 1;
$b = 3;
$c = 2 * $a + 7 * $b;
@d = ($a, $b, $c + $b);
$ perl -d:DumpTrace demo.pl
>>>>> demo.pl:3: $a:1 = 1;
>>>>> demo.pl:4: $b:3 = 3;
>>>>> demo.pl:5: $c:23 = 2 * $a:1 + 7 * $b:3;
>>>>> demo.pl:6: @d:(1,3,26) = ($a:1, $b:3, $c:23 + $b:3);
Siempre incluya estas declaraciones en sus scripts Perl:
use strict;
use warnings;
Si quiere depurarlo, use el -d
. Y aquí están los comandos: http://www.domainavenue.com/pl-debug.htm
Espero que ayude.
Eche un vistazo a Devel::Trace
o Devel::ebug
.
Dado este programa llamado w.pl
:
#!/usr/bin/perl
use strict;
use warnings;
my $answer = 42;
if ($answer == 6 * 9) {
print "everything is running fine./n";
} else {
warn "there must be a bug somewhere.../n";
}
Puede usar Devel::Trace
para ver la ejecución:
perl -d:Trace w.pl
Que produce el siguiente resultado:
>> w.pl:6: my $answer = 42;
>> w.pl:8: if ($answer == 6 * 9) {
>> w.pl:11: warn "there must be a bug somewhere.../n";
there must be a bug somewhere...