Comment puis-je déboguer un script Perl?
Lorsque j'exécute un script Perl, comment puis-je le corriger? Par exemple, en ksh-je ajouter de la -x
drapeau. Mais comment je fais la même chose en Perl?
Vous devez vous connecter pour publier un commentaire.
est de savoir comment vous débogage de Perl
-d
use strict; use warnings;
vers le haut de votre script. Si cela ne fonctionne pas, passez à l'étape 2: utilisez perl -d.Si l'utilisation d'un débogueur interactif est OK pour vous, vous pouvez essayer de perldebug
Pour exécuter votre script sous le débogueur perl, vous devez utiliser
-d
commutateur:Mais perl est flexible. Il offre des crochets et vous pouvez forcer le débogueur de travailler comme vous le souhaitez
Donc d'utiliser différents débogueurs vous pouvez faire:
Look de ces modules ici et ici
Il y a plusieurs plus intéressant modules perl que le crochet dans le débogueur perl internes: Devel::NYTProf, Devel::Cover
Et beaucoup d'autres
Je vous recommande également à l'aide de la Le débogueur Perl.
Cependant, puisque vous m'avez demandé quelque chose comme shell
-x
ont un look à la Devel::Trace module qui fait la même chose.Utilisation Eclipse avec ÉPIQUE: Il vous donne une belle IDE avec le débogage de possibilités, y compris la capacité de placer des points d'arrêt et les
Perl Expression View
pour l'inspection de la valeur des variables.(Et en améliorant les instructions d'impression, avec Data::Dumper)
Si vous voulez faire du débogage à distance (pour les cgi ou si vous ne voulez pas gâcher la sortie de débogage de la ligne de commande) ce:
test:
Commencer un écouteur sur n'importe quel hôte et le port sur la borne 1 (ici localhost:12345):
pour readline en charge l'utilisation rlwrap (vous pouvez utiliser sur
perl -d
trop):Et de commencer le test sur un autre terminal (disons terminal 2):
D'entrée/de Sortie sur la borne 1:
De sortie sur la borne 2:
Note de la phrase si vous voulez la sortie de débogage terminal
Si vous êtes utilisateur de vim, installer ce plugin: dbg.vim qui fournit un support de base pour perl