Ce mode debug n'est pas évident à comprendre. Lorsque je tape des commandes celle-ci ne s'affiche pas. Aucune progression dans le script.
Si quelqu'un peut m'aider ...
Version imprimable
Ce mode debug n'est pas évident à comprendre. Lorsque je tape des commandes celle-ci ne s'affiche pas. Aucune progression dans le script.
Si quelqu'un peut m'aider ...
Si ton script utilise l'entrée standard, le mode debug n'est pas utilisable. Comment lances-tu perl en mode débug (ligne de commande) ?
Effectivement en ligne de commande
Code:perl -d mon_script.pl param1 param2
Cela devrait fonctionner... tu n'as même pas le prompt DB<1> ?
Si, j'ai bien le prompt DB<1> Mais ensuite, lorsque j'essaie de taper des commandes celle-ci n'apparaissent pas. Ensuite, il me rend la main avec à nouveau le même prompt.
Les commandes sont sous forme d'une lettre et des paramètres :
b <numéro de ligne>
f fichier
n
s
L
...
J'ai compris pourquoi cela ne fonctionne pas. Au début du script, j'avais la ligneet donc quand je lance le script. La compilation du script ne s'exécute pas.Code:#!/usr/bin/perl -wT
Voir la trace ci-dessous
J' ai enlevé l'option -T. Mais maintenant quand je relance j'ai cette erreurCitation:
perl -d detail_new.pl
Loading DB routines from perl5db.pl version 1.19
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
Too late for "-T" option at detail_new.pl line 1.
Debugged program terminated.
Car infsvgApache.pm est activé à partir d'un autre script perl.Citation:
Default die handler restored.
Loading DB routines from perl5db.pl version 1.07
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
Can't locate infsvgApache.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i386-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i386-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl/5.6.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.6.1/i386-linux /usr/lib/perl5/vendor_perl/5.6.1 /usr/lib/perl5/vendor_perl .) at ./detail_new.pl line 20.
BEGIN failed--compilation aborted at ./detail_new.pl line 20.
Mais si je lance ce script avant j'ai un message d'erreur.En un mot je tourne en rond :cry:Citation:
Can't locate object method "module" via package "Apache" (perhaps you forgot to load "Apache"?) at /usr/lib/perl5/site_perl/5.6.1/Apache/DBI.pm line 202.
Compilation failed in require at ./startup.pl line 24.
Là, je suis désolé, ça dépasse mes compétences. Il faudrait avoir la main sur le clavier pour avancer... 8O
J'ai un petit peu avancé
Voici le nouveau message d'erreur
Citation:
DB<1> n
Apache.pm was not loaded
at script.pl line 33
Apache::DBI::connect_on_init('Apache::DBI','DBI:Pg:dbname=nondebase','','','HASH(0x943cb80)') called at scrip.pl line 33
Use of uninitialized value in concatenation (.) or string at script.pl line 33.
Cannot connect to database: at script.pl line 33
Si j'ai bien compris, il faudrait une configuration de test intégrant beaucoup de choses. Il sera difficile de t'aider sur le totalité de ton script.
Il faudrait que tu isoles ce qui pose problème dans un script simple, ou alors, en ajoutant des affichages de debug pour visualiser les variables et données qui pourraient poser problème.
Pour visualiser correctement une structure de type tableau ou table de hashage, tu peux utiliser le module Data::Dumper.