para mac current compilador actualizar perl debugging trace

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...