Why not adopt me?
NAME
Devel::TraceLoad - Trace les chargements de programmes Perl
SYNOPSIS
# with perldb
perl -d:TraceLoad script.pl
# without perldb
perl -MDevel::TraceLoad script.pl
# without perldb and with options
perl -MDevel::TraceLoad=after,path script.pl
# with perldb and options
perl -d:TraceLoad -MDevel::TraceLoad=stop,after,path script.pl
DESCRIPTION
Le module Devel::TraceLoad
trace les require()
et les use()
figurant dans un programme. La trace permet de connaître les dépendances d'un programme vis-à-vis d'autres programmes et en particulier des modules.
Le rapport généré peut être obtenu sous différentes formes. Les chargements sont indiqués dans l'ordre dans lesquels ils sont effectués. La trace peut être obtenue soit au cours de l'exécution des chargements ou à l'issue de l'exécution. Par défaut, la trace est générée lors de l'exécution et les imbrications de chargements sont marqués par des renfoncements. Tous les require()
sont indiqués, même s'il s'agit d'un require()
d'un programme déjà chargé. Un +
indique que le programme est chargé pour la première fois. Un .
indique que le programme a déjà été chargé.
Lorsque la trace est différée, le numéro de version des modules est indiqué. Une trace différée peut être triée et si on le souhaite les noms des modules peuvent être remplacés par le nom absolu des fichiers.
Le module est voisin de Devel::Modlist
mais utilise une redéfinition de require()
au lieu d'exploiter %INC
. Dans une volonté d'homogénéité le module emprunte également de nombreuses choses à Devel::Modlist
.
UTILISATION
Devel::TraceLoad
peut s'utiliser avec ou sans perldb :
perl -d:TraceLoad script.pl
perl -MDevel::TraceLoad script.pl
Pour la plupart des utilisations les deux possibilités sont équivalentes.
OPTIONS
Pour passer des options au module Devel::TraceLoad
on écrira :
perl -MDevel::TraceLoad=option1[,option2,...]
Avec cette écriture l'option stop
n'est pas prise en compte. Pour que stop
soit prise en compte on écrira :
perl -d:TraceLoad -MDevel::TraceLoad=option1[,option2,...]
- after
-
La trace est donnée à l'issue de l'exécution.
- flat
-
Supprime les renfoncements qui indiquent les emboîtements de
require()
. - noversion
-
Supprime l'indication de version des modules requis.
- path
-
Indique les noms absolus des fichiers correspondant aux modules chargés en lieu et place des noms de modules.
Cette option ne fonctionne que lorsque la trace est produite à l'issue de l'exécution, c'est-à-dire en présence de l'option
after
. - sort
-
La trace est fournie à l'issue de l'exécution et donne une liste triée alphabétiquement sur les noms de module ou les chemins.
- stdout
-
Redirige la trace vers
STDOUT
. Par défaut la trace est redirigée versSTDERR
. - stop
-
Arrête le programme avant que la première du programme ne soit exécutée si l'exécution à lieu avec perldb. Ne permet pas de voir les chargements effectués par les
require()
et les chargements qui se trouvent dans uneval()
. - try
-
Si l'exécution échoue avec le message
Can't locate Bar.pm in @INC ...
et que vous êtes sûr de votre code, utilisez l'optiontry
. Cette option active une heuristique pour compenser le fait qu'il n'est pas possible de savoir si l'argument d'un c<require()> est placé entre guillemets ou non (est-ce que je me trompe ?). Pour essayer de le déterminer nous utilisons une heuristique qui consiste, entre autre, à considérer que l'argument est placé entre guillemets s'il n'est pas suffixé par ".pl" ou ".pm".
BUG
Certains modules et pragmas sont chargés du fait de la présence de -MDevel::TraceLoad
. Ces modules ne figurent pas dans la trace (avec la version de Perl sur laquelle nous avons fait nos tests les modules concernés sont Exporter.pm Carp.pm vars.pm warnings::register.pm Devel::TraceLoad.pm warnings.pm).
AUTHOR
Philippe Verdret <pverdret@dalet.com>, sur la base d'une idée de Joshua Pritikin <vishnu@pobox.com>.
La version anglaise de la documentation est produite à partir d'un traduction automatique effectuée par babel.altavista.com
.
VOIR EGALEMENT
Devel::Modlist
.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 22:
Non-ASCII character seen before =encoding in 'connaître'. Assuming CP1252