Il s'agit de la commande perlcriticp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
"perlcritic" - Interface en ligne de commande pour critiquer la source Perl.
SYNOPSIS
perlcritique [-12345 | --brutal | --cruel | --sévère | --stern | --doux]
[--numéro de gravité | nom] [{-p | --profile} fichier | --Pas de profil]
[--top [ nombre ]] [--expression du thème] [--include motif]
[--exclude motif] [{-s | --single-policy} modèle]
[--seulement | --noonly] [--profile-strictness {avertir|fatal|silencieux}]
[--forcer | --noforce] [--statistics] [--statistics-only]
[--compte | -C] [--verbose {nombre | format}] [--allow-unsafe]
[--couleur | --nocolor] [--pager pager] [--quiet]
[--color-severity-highest color_spécification]
[--color-severity-high color_spécification]
[--color-severity-medium color_spécification]
[--color-severity-low color_spécification]
[--color-severity-lowest color_spécification]
[--fichiers-avec-violations | -l]
[--fichiers-sans-violations | -L]
[--program-extensions nom_fichier_extension]
{FICHIER | ANNUAIRE | STDIN}
perlcritic --profile-proto
perlcritique { --list | --list-enabled | --list-themes | --doc modèle [...] }
perlcritique { --help | --options | --man | --version }
DESCRIPTION
"perlcritic" est un analyseur de code source Perl. C'est le front-end exécutable du
Perl::Critic Engine, qui tente d'identifier
constructions non conventionnelles dans votre code. La plupart des règles sont basées sur celle de Damian Conway
livre Perl Mieux Expertises. Cependant, "perlcritique" est pas limité à l'application de la PBP, et il
soutiendra même les règles qui contredisent Conway. Toutes les règles peuvent être facilement configurées ou
désactivé à votre convenance.
Cette documentation explique uniquement comment piloter cette commande. Pour toutes autres informations, telles
comme référence API et interfaces alternatives, veuillez consulter la documentation de Perl::Critic
elle-même.
UTILISATION EXEMPLES
Avant d'entrer dans tous les détails sanglants, voici quelques exemples d'utilisation de base pour vous aider à obtenir
vous avez commencé.
# Signalez uniquement les violations les plus graves (gravité = 5)
perlcritic VotreModule.pm
# Identique à ci-dessus, mais lisez l'entrée de STDIN
perlcritique
# Traiter de manière récursive tous les fichiers Perl sous le répertoire
perlcritic /certain/répertoire
# Signalez également des violations légèrement moins graves (gravité >= 4)
perlcritic -4 VotreModule.pm
# Identique à ci-dessus, mais en utilisant le niveau de gravité nommé
perlcritic --stern VotreModule.pm
# Signaler toutes les violations, quelle que soit leur gravité (gravité >= 1)
perlcritic -1 VotreModule.pm
# Identique à ci-dessus, mais en utilisant le niveau de gravité nommé
perlcritic --brutal VotreModule.pm
# Signalez uniquement les violations de choses de "Perl Best Practices"
perlcritic --theme pbp VotreModule.pm
# Signalez les 20 violations les plus graves (gravité >= 1)
perlcritic --top VotreModule.pm
# Signaler des violations supplémentaires des politiques qui correspondent à m/variables/xms
perlcritic --include les variables VotreModule.pm
# Utilisez les valeurs par défaut d'un endroit autre que ~/.perlcriticrc
perlcriticrc --profile projet/spécifique/perlcriticrc VotreModule.pm
ARGUMENTS
Les arguments sont des chemins vers les fichiers que vous souhaitez analyser. Vous pouvez spécifier plusieurs fichiers.
Si un argument est un répertoire, "perlcritic" analysera tous les fichiers Perl sous le
annuaire. Si aucun argument n'est spécifié, l'entrée est lue à partir de STDIN.
OPTIONS
Les noms d'options peuvent être abrégés en unicité et peuvent être indiqués avec simple ou double
tirets, et les valeurs des options peuvent être séparées du nom de l'option par un espace ou '=' (comme avec
Getopt::Long). Les noms d'options sont également sensibles à la casse.
"--profile FICHIER" ou "-p FICHIER"
Ordonne à "perlcritic" d'utiliser un profil nommé par FILE plutôt que de rechercher le
défaut .perlcriticrc dans le répertoire courant ou dans votre répertoire personnel. Voir
"CONFIGURATION" dans Perl::Critic pour plus d'informations.
"--Pas de profil"
Ordonne à "perlcritic" de ne charger aucun fichier de configuration, revenant ainsi à la valeur par défaut
configuration pour toutes les politiques.
"--gravité N"
Ordonne à « perlcritic » de n'appliquer que les stratégies dont la gravité est supérieure à « N ».
Les valeurs de gravité sont des nombres entiers allant de 1 (le moins sévère) à 5 (le plus sévère). le
la valeur par défaut est 5. Pour un "--profile" donné, la diminution de "--severity" sera généralement
produire plus de violations. Vous pouvez définir la valeur par défaut de cette option dans votre
.perlcriticrc déposer. Vous pouvez également redéfinir la « sévérité » de toute politique dans votre
.perlcriticrc déposer. Voir "CONFIGURATION" pour plus d'informations.
"-5 | -4 | -3 | -2 | -1"
Ce sont des raccourcis numériques pour définir l'option "--severity". Par exemple, "-4" est
équivalent à "--gravité 4". Si plusieurs raccourcis sont spécifiés, le plus
un restrictif l'emporte. Si une option explicite "--severity" est également donnée, alors tous
les options de raccourci sont ignorées en silence. REMARQUE : Attention à ne pas mettre l'un des nombres
les options de raccourci de gravité immédiatement après le drapeau "--top" ou "perlcritic" seront
l'interpréter comme le nombre d'infractions à signaler.
"--gravité NOM"
S'il vous est difficile de vous rappeler si la gravité « 5 » est la plus ou la moins
niveau restrictif, vous pouvez utiliser l'une de ces valeurs nommées :
NOM DE GRAVITÉ ...est équivalent à... NUMÉRO DE GRAVITÉ
Peut être teinte, et coiffer comme vous le désirez.
--gravité douce --gravité 5
--gravité poupe --gravité 4
--gravité sévère --gravité 3
--gravité cruelle --gravité 2
--gravité brutale --gravité 1
"--gentil | --stern | --hard | --cruel | --brutal"
Ce sont des raccourcis nommés pour définir l'option "--severity". Par exemple, "--cruel"
équivaut à "--gravité 2". Si plusieurs raccourcis sont spécifiés, le plus
un restrictif l'emporte. Si une option explicite "--severity" est également donnée, alors tous
les options de raccourci sont ignorées en silence.
"--thème RÈGLE"
Ordonne à « perlcritic » d'appliquer uniquement les politiques avec des thèmes qui satisfont à la « RÈGLE ».
Les thèmes sont des noms arbitraires pour des groupes de stratégies associées. Vous pouvez combiner le thème
noms avec des opérateurs booléens pour créer une "RÈGLE" arbitrairement complexe. Par example,
ce qui suit s'appliquerait uniquement aux politiques qui ont un thème « bugs » ET « pbp » :
$> perlcritic --theme='bugs && pbp' MyModule.pm
À moins que l'option "--severity" ne soit explicitement donnée, la définition de "--theme" provoque silencieusement
le "--severity" doit être défini sur 1. Vous pouvez définir la valeur par défaut pour cette option dans
votre .perlcriticrc déposer. Voir "THEMES DE POLITIQUE" dans Perl::Critic pour plus d'informations
sur des thèmes.
"--inclure le MOTIF"
Ordonne à "perlcritic" d'appliquer des politiques supplémentaires qui correspondent à l'expression régulière "/PATTERN/imx".
Utilisez cette option pour remplacer temporairement votre profil et/ou les paramètres de gravité à
la ligne de commande. Par exemple:
perlcritic --include=layout mon_fichier.pl
Cela amènerait "perlcritic" à appliquer toutes les politiques "CodeLayout::*" même si elles
ont un niveau de gravité inférieur au niveau par défaut de 5, ou ont été désactivés
dans votre .perlcriticrc déposer. Vous pouvez spécifier plusieurs options "--include" et vous pouvez
utilisez-le en conjonction avec l'option "--exclude". Notez que "--exclude" prend
priorité sur "--include" lorsqu'une politique correspond aux deux modèles. Vous pouvez définir le
valeur par défaut de cette option dans votre .perlcriticrc fichier.
"--exclure le MOTIF"
Ordonne à "perlcritic" de n'appliquer aucune politique qui correspond à l'expression régulière "/PATTERN/imx".
Utilisez cette option pour remplacer temporairement votre profil et/ou les paramètres de gravité à
la ligne de commande. Par exemple:
perlcritic --exclude=strict mon_fichier.pl
Cela empêcherait "perlcritic" d'appliquer le "RequireUseStrict" et
Politiques « ProhibitNoStrict » même si elles ont le niveau de gravité le plus élevé. Tu peux
spécifiez plusieurs options "--exclude" et vous pouvez l'utiliser en conjonction avec le
Option "--inclure". Notez que "--exclude" est prioritaire sur "--include" lorsqu'un
La politique correspond aux deux modèles. Vous pouvez définir la valeur par défaut de cette option dans votre
.perlcriticrc fichier.
"--single-policy PATTERN" ou "-s PATTERN"
Ordonne à "perlcritic" d'appliquer un seul module de politique correspondant à l'expression régulière
"/PATTERN/ixms", et exclure toutes les autres politiques. Cette option a préséance sur la
Options "--severity", "--theme", "--include", "--exclude" et "--only". Par example:
perlcritic --single-policy=notifications mon_fichier.pl
Cela amènerait "perlcritic" à appliquer uniquement la politique "ProhibitNoWarnings",
quel que soit le paramètre de niveau de gravité. Aucune autre politique ne serait appliquée.
C'est équivalent à ce que l'on pourrait vouloir dire par...
perlcritic --exclude=. --include=notifications mon_fichier.pl
... mais cela ne fonctionnera pas car l'option "--exclude" remplace le "--include"
option.
L'équivalent de cette option peut être obtenu en créant un profil personnalisé
contenant uniquement la stratégie souhaitée, puis en cours d'exécution...
perlcritic --profile=customprofile --only mon_fichier.pl
"--top [ N ]"
Ordonne à « perlcritic » de ne signaler que les « N » premières violations de la politique dans chaque fichier, classées
par leur sévérité. Si "N" n'est pas spécifié, la valeur par défaut est 20. Si le "--severity"
l'option (ou l'un des raccourcis) n'est pas explicitement donnée, l'option "--top" implique
que le niveau de gravité minimum est « 1 » (c'est-à-dire « brutal »). Les utilisateurs peuvent redéfinir le
gravité pour toute politique dans leur .perlcriticrc déposer. Voir "CONFIGURATION" pour en savoir plus
information. Vous pouvez définir la valeur par défaut de cette option dans votre .perlcriticrc
déposer. REMARQUE : veillez à ne pas mettre immédiatement l'une des options de raccourci de gravité
après le drapeau "--top" ou "perlcritic" l'interprétera comme le nombre de violations
signaler.
"--Obliger"
Ordonne à "perlcritic" d'ignorer les annotations magiques "## no critique" dans la source
code. Pour plus d'informations, reportez-vous à la section « CONFORMER LES RÈGLES ». Vous pouvez définir la valeur par défaut pour
cette option dans votre .perlcriticrc fichier.
"--statistiques"
Provoque plusieurs statistiques sur le code en cours d'analyse et les violations trouvées
signalé après toute autre sortie.
"--statistiques-seulement"
Comme l'option "--statistics", mais supprime la sortie normale et n'affiche que le
statistiques.
"--verbose N | FORMAT"
Définit le niveau de détail ou le format pour signaler les violations. Si un nombre ("N") est donné,
"perlcritic" signale les violations en utilisant l'un des formats prédéfinis décrits ci-dessous.
Si une chaîne ("FORMAT") est donnée, elle est interprétée comme une spécification de format réelle.
Si l'option "--verbose" n'est pas spécifiée, sa valeur par défaut est 4 ou 5, selon
si plusieurs fichiers ont été donnés comme arguments à "perlcritic". Vous pouvez définir le
valeur par défaut de cette option dans votre .perlcriticrc fichier.
Spécification du format de verbosité
----------- ---------------------------------------- ----------------
1 "%f:%l:%c:%m\n",
2 "%f : (%l :%c) %m\n",
3 "%m à la ligne %f %l\n",
4 "%m à la ligne %l, colonne %c. %e. (Sévérité : %s)\n",
5 "%f : %m à la ligne %l, colonne %c. %e. (Sévérité : %s)\n",
6 "%m à la ligne %l, près de '%r'. (Gravité : %s)\n",
7 "%f : %m à la ligne %l près de '%r'. (Gravité : %s)\n",
8 "[%p] %m à la ligne %l, colonne %c. (Sévérité : %s)\n",
9 "[%p] %m à la ligne %l, près de '%r'. (Gravité : %s)\n",
10 "%m à la ligne %l, colonne %c.\n %p (Sévérité : %s)\n%d\n",
11 "%m à la ligne %l, près de '%r'.\n %p (Sévérité : %s)\n%d\n"
Les formats sont une combinaison de caractères littéraux et d'échappement similaires à la manière
"sprintf" fonctionne. Voir String::Format pour une explication complète du formatage
capacités. Les caractères d'échappement valides sont :
Échapper Signification
------- -------------------------------------------- -----------------
%c Numéro de colonne où la violation s'est produite
%d Discussion de diagnostic complète de la violation
%e Explication de la violation ou des numéros de page dans PBP
%F Juste le nom du fichier où la violation s'est produite.
%f Chemin d'accès au fichier où la violation s'est produite.
%l Numéro de ligne où la violation s'est produite
%m Brève description de la violation
%P Nom complet du module de stratégie qui a créé la violation
%p Nom de la politique sans le préfixe Perl::Critic::Policy ::
%r La chaîne de code source qui a causé la violation
%C La classe du PPI::Element qui a causé la violation
%s Le niveau de gravité de la violation
Le but de ces formats est de fournir une certaine compatibilité avec les éditeurs de texte qui
ont une interface pour analyser certains types d'entrée. Voir « INTÉGRATION DE L'ÉDITEUR » pour
plus d'informations à ce sujet.
"--liste"
Affiche une liste condensée de tous les modules Perl::Critic::Policy trouvés sur
cette machine. Cette option répertorie tous Les politiques, quelle que soit votre .perlcriticrc or
options de ligne de commande. Pour chaque politique, le nom, la gravité par défaut et les thèmes par défaut
sont indiqués.
"--list-enabled"
Affiche une liste condensée de tous les modules Perl::Critic::Policy qui pourra be
appliqué, si vous vouliez réellement critiquer un fichier avec cette commande. C'est
utile lorsque vous avez construit une commande compliquée ou modifié votre .perlcriticrc
fichier et vous voulez voir exactement quelles politiques vont être appliquées (ou non
appliquée, selon le cas). Pour chaque politique, le nom, la gravité par défaut et la valeur par défaut
les thèmes sont affichés.
"--liste-thèmes"
Affiche une liste de tous les thèmes des modules Perl::Critic::Policy trouvés
sur cette machine.
"--profil-proto"
Affiche une liste étendue de tous les modules Perl::Critic::Policy qui se trouvent sur
cette machine. Pour chaque politique, le nom, la gravité par défaut et les thèmes par défaut sont
affiché, ainsi que le nom de tout paramètre supplémentaire pris en charge par la politique. le
format convient comme prototype pour votre .perlcriticrc fichier.
"--seul"
Ordonne à perlcritic d'appliquer uniquement les politiques qui sont explicitement mentionnées dans votre
.perlcriticrc déposer. Ceci est utile si vous souhaitez utiliser un petit sous-ensemble de stratégies
sans avoir à désactiver tous les autres. Vous pouvez définir la valeur par défaut pour ce
option dans votre .perlcriticrc fichier.
"--profile-strictness {avertir|fatal|calme}"
Indique à perlcritic comment traiter certains problèmes récupérables trouvés dans un .perlcriticrc
ou fichier spécifié via l'option "--profile". Les valeurs valides sont "warn" (la valeur par défaut),
« fatal » et « silencieux ». Par exemple, perlcritic n'avertit normalement que des profils
se référant à des politiques inexistantes, mais cette option peut rendre cette situation fatale. Vous
pouvez définir la valeur par défaut pour cette option dans votre .perlcriticrc fichier.
"--compter"
"-C"
Affichez uniquement le nombre de violations pour chaque fichier. Utilisez cette fonction pour obtenir un rapide
gérer là où un gros tas de code pourrait nécessiter le plus d'attention.
"--Safari"
Signaler les citations « Perl Best Practice » comme numéros de section de
<http://safari.oreilly.com> au lieu des numéros de page du livre réel. REMARQUE : ce
fonctionnalité n'est pas encore implémentée.
"--color" =item "--color"
Cette option est activée lors de la sortie vers un tty. Lorsqu'ils sont définis, les niveaux de gravité 5 et 4 sont colorés
respectivement rouge et jaune. La colorisation ne se produit que si Term::ANSIColor est
installé et il ne fonctionne que sur des environnements non Windows. Annulez ce commutateur pour
désactiver la couleur. Vous pouvez définir la valeur par défaut de cette option dans votre .perlcriticrc
fichier.
"--pager PAGER_COMMAND_STRING"
Si défini, perlcritic dirigera sa sortie vers le PAGER_COMMAND_STRING donné. Tu peux
définissez la valeur par défaut de cette option dans votre .perlcriticrc fichier.
Le réglage d'un téléavertisseur désactive la couleur par défaut. Vous devrez activer la couleur
explicitement. Si vous voulez de la couleur, vous voudrez probablement aussi dire à votre téléavertisseur de
afficher des caractères bruts. Pour "moins" et "plus", utilisez le commutateur -R.
"--color-severity-highest COLOR_SPECIFICATION"
Spécifie la couleur à utiliser pour les violations de gravité la plus élevée, en tant que Term::ANSIColor
spécification de couleur. Peut également être spécifié comme "--color-gravity-highest",
"--color-severity-5", ou "--color-severity-5".
"--color-severity-high COLOR_SPECIFICATION"
Spécifie la couleur à utiliser pour les violations de gravité élevée, en tant que Term::ANSIColor
spécification de couleur. Peut également être spécifié comme "--color-gravity-high",
"--color-severity-4", ou "--color-severity-4".
"--color-severity-medium COLOR_SPECIFICATION"
Spécifie la couleur à utiliser pour les violations de gravité moyenne, en tant que Term::ANSIColor
spécification de couleur. Peut également être spécifié comme "--couleur-sévérité-moyen",
"--color-severity-3", ou "--color-severity-3".
"--color-severity-low COLOR_SPECIFICATION"
Spécifie la couleur à utiliser pour les violations de faible gravité, en tant que couleur Term::ANSIColor
spécification. Peut également être spécifié comme "--color-gravity-low",
"--color-severity-2", ou "--color-severity-2".
"--color-severity-lowest COLOR_SPECIFICATION"
Spécifie la couleur à utiliser pour les violations de gravité les plus faibles, en tant que Term::ANSIColor
spécification de couleur. Peut également être spécifié comme "--color-gravity-lowest",
"--color-severity-1", ou "--color-severity-1".
"--fichiers-avec-violations"
Afficher uniquement les noms des fichiers avec des violations. Utilisez cette fonction avec
--single-policy pour rechercher les fichiers contenant des violations d'une politique donnée. Peut également être
spécifié comme "--l".
"--fichiers-sans-violations"
Afficher uniquement les noms des fichiers sans violations. Utilisez cette fonction avec
--single-policy pour rechercher les fichiers qui ne contiennent pas de violations d'une politique donnée. Pouvez
également être spécifié comme "--L".
"--program-extensions file_name_extension"
Dites à "perlcritic" de traiter les fichiers dont les noms se terminent par l'extension de nom de fichier donnée comme
programmes, pas en tant que modules. Si un '.' est souhaité, il doit être explicitement spécifié,
par exemple
--program-extensions .pl
La correspondance est sensible à la casse et l'option peut être spécifiée autant de fois que
souhaité, par exemple
--program-extensions .pl --program-extensions .cgi
Ce qui précède peut également être fait en citant les extensions de nom de fichier :
--program-extensions '.pl .cgi'
Les fichiers dont le nom se termine par '.PL' seront toujours considérés comme des programmes.
"--doc PATRON"
Affiche le perldoc de tous les modules Perl::Critic::Policy qui correspondent à "m/PATTERN/ixms".
Étant donné que les modules de stratégie ont tendance à avoir des noms assez longs, cela fournit simplement une plus
moyen pratique de dire quelque chose comme : "perldoc
Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseH eredocTerminator" au
invite de commande
"--allow-unsafe"
Cette option demande à "perlcritic" d'autoriser l'utilisation des politiques qui ont été marquées comme
"peu sûr". Les politiques non sécurisées peuvent entraîner des opérations risquées en compilant et en exécutant
le code qu'ils analysent. Toutes les politiques fournies dans le noyau Perl::Critic
distribution sont sûrs. Cependant, les politiques de tiers, telles que celles du
Perl::Critic::Les distributions dynamiques ne sont pas sûres. Notez que la "sécurité" est honorifique -- si
un auteur de politique marque une politique comme sûre, cela ne garantit pas qu'elle ne fera pas de mal
des choses. If vous ne le font pas de confiance votre Politiques internes et le code vous sommes-nous en cours d'analyse, puis do pas
utilisé ceci. interrupteur.
"--calmer"
Supprimez le message "source OK" lorsqu'aucune violation n'est trouvée.
"--aider"
"-?"
"-H"
Affiche un bref résumé des options et des sorties.
"--options"
Affiche les descriptions des options et des sorties. Bien que cette sortie soit longue, elle
loin de la longueur de la sortie de "--man".
"--homme"
Affiche le manuel "perlcritic" complet et quitte.
"--version"
"-V"
Affiche le numéro de version de "perlcritic" et quitte.
CONFIGURATION
La plupart des paramètres de Perl::Critic et chacun des modules de politique peuvent être contrôlés par
un fichier de configuration. Le fichier de configuration par défaut est appelé .perlcriticrc.
"perlcritic" cherchera d'abord ce fichier dans le répertoire courant, puis dans votre maison
annuaire. Alternativement, vous pouvez définir la variable d'environnement "PERLCRITIC" pour explicitement
pointer vers un fichier différent dans un autre emplacement. Si aucun de ces fichiers n'existe et que le
L'option "--profile" n'est pas donnée sur la ligne de commande, alors toutes les politiques seront chargées avec
leur configuration par défaut.
Le format du fichier de configuration est une série de blocs de style INI qui contiennent des
paires de valeurs séparées par "=". Les commentaires doivent commencer par "#" et peuvent être placés sur un
ligne séparée ou après les paires nom-valeur si vous le désirez.
Les paramètres par défaut pour perlcritic lui-même peuvent être définis avant le premier nommé bloque. Pour
exemple, en mettant tout ou partie de ceux-ci en haut de votre .perlcriticrc fichier définira le
valeur par défaut pour l'argument de ligne de commande correspondant.
gravité = 3 #Entier ou niveau nommé
seulement = 1 #Zéro ou Un
force = 0 #Zéro ou Un
verbose = 4 #Entier ou spécification de format
top = 50 #Un entier positif
theme = (pbp + security) * bugs #Une expression de thème
include = NamingConventions ClassHierarchies #Liste délimitée par des espaces
exclure = Variables Modules::RequirePackage #Liste délimitée par des espaces
Le reste du fichier de configuration est une série de blocs comme celui-ci :
[Perl :: Critique :: Politique :: Catégorie :: NomPolitique]
gravité = 1
set_themes = barre de foo
add_themes = baz
argument1 = valeur1
argument2 = valeur2
"Perl::Critic::Policy::Category::PolicyName" est le nom complet d'un module qui implémente
la politique. Les modules de politique distribués avec Perl::Critic ont été regroupés en
catégories selon la table des matières du livre de Damian Conway Perl Mieux Expertises.
Par souci de concision, vous pouvez omettre la partie 'Perl::Critic::Policy' du nom du module.
« gravité » est le niveau d'importance que vous souhaitez attribuer à la politique. Toutes les politiques
les modules sont définis avec une valeur de gravité par défaut allant de 1 (le moins sévère) à 5 (le plus
sévère). Cependant, vous pouvez être en désaccord avec la gravité par défaut et choisir de lui donner un
gravité plus élevée ou plus faible, en fonction de votre propre philosophie de codage. Vous pouvez définir la "gravité"
à un nombre entier de 1 à 5, ou utilisez l'un des noms équivalents :
NOM DE GRAVITÉ ...est équivalent à... NUMÉRO DE GRAVITÉ
-------------------------------------------------- -
5 doux
étoile 4
dur 3
cruelle 2
brutale 1
"set_themes" définit le thème de la stratégie et remplace son thème par défaut. L'argument
est une chaîne d'un ou plusieurs mots alphanumériques délimités par des espaces. Les thèmes sont cas-
insensible. Voir « THÈMES DE POLITIQUE » pour plus d'informations.
« add_themes » s'ajoute aux thèmes par défaut de cette politique. L'argument est une chaîne de
un ou plusieurs mots délimités par des espaces. Les thèmes sont insensibles à la casse. Voir « THÈMES DE POLITIQUE »
pour plus d'informations.
Les paires clé-valeur restantes sont des paramètres de configuration qui seront passés dans le
constructeur de cette politique. Les constructeurs de la plupart des modules de stratégie ne prennent pas en charge
arguments, et ceux qui le font devraient avoir des valeurs par défaut raisonnables. Voir la documentation sur
le module de politique approprié pour plus de détails.
Au lieu de redéfinir la gravité d'une politique donnée, vous pouvez désactiver complètement une politique
en ajoutant un '-' au nom du module dans votre fichier de configuration. De cette façon,
la politique ne sera jamais chargée, quel que soit le "--severity" donné sur la ligne de commande.
Une configuration simple pourrait ressembler à ceci :
#---------------------------------------------------------------- -------------
# Je pense qu'ils sont vraiment importants, alors chargez-les toujours
[TestingAndDebugging ::RequireUseStrict]
gravité = 5
[TestingAndDebugging ::RequireUseWarnings]
gravité = 5
#---------------------------------------------------------------- -------------
# Je pense que ceux-ci sont moins importants, alors ne chargez que lorsque demandé
[Variables ::ProhibitPackageVars]
gravité = 2
[ControlStructures : ProhibitPostfixControls]
autoriser = si à moins que # Ma configuration personnalisée
sévérité = cruel # Identique à " sévérité = 2 "
#---------------------------------------------------------------- -------------
# Donnez à ces stratégies un thème personnalisé. je peux activer juste
# ces politiques en disant "perlcritic --theme 'larry || curly'"
[Modules :: RequireFilenameMatchesPackage]
add_themes = Larry
[TestingAndDebugging ::RequireTestLabels]
add_themes = moe bouclé
#---------------------------------------------------------------- -------------
# Je ne suis pas du tout d'accord avec ceux-ci, alors ne les chargez jamais
[-NamingConventions::Capitalisation]
[-ValuesAndExpressions :: ProhibitMagicNumbers]
#---------------------------------------------------------------- -------------
# Pour toutes les autres politiques, j'accepte la gravité par défaut,
# donc aucune configuration supplémentaire n'est requise pour eux.
Notez que toutes les politiques incluses avec la distribution Perl::Critic qui ont un nombre entier
les paramètres acceptent les traits de soulignement ("_") dans leurs valeurs, comme avec les littéraux numériques Perl. Pour
Par exemple,
[ValuesAndExpressions ::RequireNumberSeparators]
valeur_min = 1_000
Pour des exemples de configuration supplémentaires, consultez le perlcriticrc fichier qui est inclus dans ce
exemples répertoire de cette distribution.
La configuration Perl::Critic de Damian Conway est également incluse dans cette distribution comme
exemples/perlcriticrc-conway.
THE POLITIQUES
Un grand nombre de modules Policy sont distribués avec Perl::Critic. ils sont décrits
brièvement dans le document d'accompagnement Perl::Critic::PolicySummary et plus en détail dans le
modules individuels eux-mêmes. Dites "perlcritic --doc PATTERN" pour voir le perldoc pour tous
Modules de stratégie qui correspondent à l'expression régulière "m/PATTERN/ixms"
Il existe un certain nombre de distributions de politiques supplémentaires sur CPAN. Si Perl::Critique
ne contient pas une politique que vous voulez, quelqu'un l'a peut-être déjà écrite. Voir voir
AUSSI" dans Perl::Critic pour une liste de certaines de ces distributions.
POLITIQUE THÈMES
Chaque politique est définie avec un ou plusieurs « thèmes ». Les thèmes peuvent être utilisés pour créer des
groupes de politiques. Ils sont destinés à fournir un mécanisme alternatif de sélection
votre ensemble de politiques préféré. Par exemple, vous pouvez souhaiter désactiver un certain ensemble de
Politiques lors de l'analyse des programmes de test. Inversement, vous souhaiterez peut-être n'activer qu'un
sous-ensemble de stratégies lors de l'analyse des modules.
Les politiques fournies avec Perl::Critic sont divisées selon les thèmes suivants.
Ceci est juste notre tentative de fournir quelques groupements logiques de base. Vous êtes libre d'inventer
de nouveaux thèmes adaptés à vos besoins.
DESCRIPTION DU THÈME
-------------------------------------------------- ----------------------
core Toutes les politiques fournies avec Perl::Critic
Politiques pbp qui proviennent directement des "Perl Best Practices"
bugs Politiques qui empêchent ou révèlent les bugs
certrec Politiques recommandées par le CERT
certrule Politiques que le CERT considère comme des règles
Politiques de maintenance qui affectent la santé à long terme du code
cosmétiques Des politiques qui n'ont qu'un effet superficiel
complexité Politiques qui se rapportent spécifiquement à la complexité du code
sécurité Politiques relatives aux problèmes de sécurité
tests Politiques spécifiques aux programmes de test
Dites « perlcritic --list » pour obtenir une liste de toutes les politiques disponibles et des thèmes qui sont
associé à chacun. Vous pouvez également modifier le thème de n'importe quelle politique dans votre
.perlcriticrc déposer. Voir la section "CONFIGURATION" pour plus d'informations à ce sujet.
En utilisant l'option de ligne de commande "--theme", vous pouvez créer une règle arbitrairement complexe qui
détermine les politiques à appliquer. La priorité est la même que celle du code Perl normal, et vous
peut également utiliser des parenthèses pour appliquer la priorité. Les opérateurs pris en charge sont :
Exemple alternatif d'opérateur
-------------------------------------------------- ---------------
&& et 'pbp && core'
|| ou 'pbp || (bogues && sécurité)'
! pas 'pbp && ! (portabilité || complexité)'
Les noms de thème sont insensibles à la casse. Si le "--theme" est défini sur une chaîne vide, alors il
évalue comme vraies toutes les politiques.
PLIANT THE DES RÈGLES
Perl::Critic adopte une approche intransigeante de votre code : soit vous vous conformez, soit vous ne le faites pas. Dans
le monde réel, il n'est pas toujours pratique (ni même possible) de se conformer pleinement au codage
normes. Dans de tels cas, il est sage de montrer que vous violez sciemment les
normes et que vous avez une sacrée bonne raison (DGR) pour le faire.
Pour vous aider dans ces situations, vous pouvez demander à Perl::Critic d'ignorer certaines lignes ou
blocs de code en utilisant des annotations :
nécessite 'LegacyLibaray1.pl' ; ## pas de critique
nécessite « LegacyLibrary2.pl » ; ## pas de critique
pour mon élément $ (@list) {
## pas de critique
$foo = "" ; #Violates 'ProhibitEmptyQuotes'
$barf = bar() si $foo; # Viole 'ProhibitPostfixControls'
#Encore un code maléfique...
## critique d'utilisation
#Un bon code...
faire_quelque chose($_);
}
Les annotations "## no critique" demandent à Perl::Critic d'ignorer les lignes de code restantes
jusqu'à ce qu'une annotation "## use critique" soit trouvée. Si l'annotation "## no critique" est sur le
même ligne qu'une instruction de code, alors seule cette ligne de code est ignorée. À diriger
perlcritic pour ignorer les annotations "## no critique", utilisez l'option "--force".
Une simple annotation « ## sans critique » désactive toutes les politiques actives. Si vous souhaitez désactiver
uniquement des stratégies spécifiques, ajoutez une liste de noms de stratégie en tant qu'arguments, comme vous le feriez pour la
pragma "pas de strict" ou "pas d'avertissements". Par exemple, cela désactiverait le
Politiques « ProhibitEmptyQuotes » et « ProhibitPostfixControls » jusqu'à la fin du bloc ou
jusqu'à la prochaine annotation "## use critique" (selon la première éventualité) :
## pas de critique (EmptyQuotes, PostfixControls);
# Maintenant exempt de ValuesAndExpressions::ProhibitEmptyQuotes
$foo = "" ;
# Maintenant exempter ControlStructures::ProhibitPostfixControls
$barf = bar() si $foo;
# Toujours soumis à ValuesAndExpression::RequireNumberSeparators
$ long_int = 10000000000 ;
Étant donné que les noms de stratégie sont comparés aux arguments "## no critique" comme d'habitude
expressions, vous pouvez abréger les noms de stratégie ou désactiver une famille entière de stratégies
en un coup comme ceci :
## pas de critique (NamingConventions)
# Maintenant exempt de NamingConventions::Capitalisation
mon $camelHumpVar = 'foo';
# Maintenant exempt de NamingConventions::Capitalisation
sous chameauHumpSub {}
La liste d'arguments doit être mise entre parenthèses et doit contenir une ou plusieurs virgules.
mots nus séparés (c'est-à-dire n'utilisez pas de guillemets). Les annotations "## no critique" peuvent être
imbriquées, et les politiques nommées par une annotation interne seront désactivées avec celles
déjà désactivé une annotation externe.
Certaines politiques comme "Subroutines::ProhibitExcessComplexity" s'appliquent à un bloc entier de
code. Dans ces cas, "## no critique" doit apparaître sur la ligne où la violation est
signalé. Par example:
sous-compliqué_fonction { ## pas de critique (ProhibitExcessComplexity)
# Votre code ici...
}
Certaines politiques telles que "Documentation::RequirePodSections" s'appliquent à l'ensemble du document, dans
quels cas les violations sont signalées à la ligne 1. Mais si le fichier nécessite une ligne shebang, il
est impossible de mettre "## no critique" sur la première ligne du fichier. C'est un connu
limitation et il sera traité dans une version future. Pour contourner ce problème, vous pouvez désactiver
les stratégies affectées sur la ligne de commande ou dans votre .perlcriticrc déposer. Mais attention ça
cela affectera l'analyse de tous fichiers.
Utilisez cette fonctionnalité à bon escient. "## no critique" doit être utilisé dans la plus petite portée possible, ou
uniquement sur des lignes de code individuelles. Et vous devez toujours être aussi précis que possible sur
quelles politiques vous souhaitez désactiver (c'est-à-dire n'utilisez jamais un simple "## sans critique"). Si
Perl::Critic se plaint de votre code, essayez de trouver une solution conforme avant de recourir
à cette fonctionnalité.
EDITEUR INTÉGRATION
Pour plus de facilité d'utilisation, "perlcritic" peut être intégré à votre éditeur de texte préféré. le
les capacités de formatage de sortie de "perlcritic" sont spécifiquement destinées à être utilisées avec le
Modes "grep" ou "compiler" disponibles dans des éditeurs comme "emacs" et "vim". Dans ces modes,
vous pouvez exécuter une commande arbitraire et l'éditeur analysera la sortie dans un format interactif
tampon sur lequel vous pouvez cliquer et sauter à la ligne de code appropriée.
L'équipe Perl::Critic remercie tous ceux qui ont aidé à intégrer Perl-Critic avec leur
éditeur préféré. Vos contributions en particulier ont fait de Perl-Critic un outil pratique et
outil convivial pour les développeurs Perl de tous bords. Nous apprécions sincèrement votre dur
.
EMAC
Joshua ben Jore a créé un mode mineur pour emacs qui vous permet d'exécuter perlcritic sur
la région ou le tampon actuel. Vous pouvez l'exécuter à la demande ou le configurer pour qu'il s'exécute
automatiquement lorsque vous enregistrez le tampon. La sortie apparaît dans un compilateur lié à chaud
amortir. Le code et les instructions d'installation se trouvent dans le extras annuaire
à l'intérieur de cette distribution.
VIM
Scott Peshak a publié perlchecker.vim, qui est disponible à
<http://www.vim.org/scripts/script.php?script_id=1731>.
gVIM
Fritz Mehner a récemment ajouté la prise en charge de "perlcritic" à son fantastique plugin gVIM. Dans
en plus de fournir un IDE très perlish, le plugin de Fritz permet d'accéder en un clic à
"perlcritic" et bien d'autres utilitaires très utiles. Et tout est parfaitement intégré dans
l'éditeur. Voir "/lug.fh-swf.de/vim /vim-perl/screenshots-en.html" dans http: pour plus d'informations
détails.
EPIC
EPIC est un IDE Perl open source basé sur la plate-forme Eclipse. Les fonctionnalités incluent la syntaxe
mise en surbrillance, vérification de la syntaxe à la volée, aide au contenu, complétion du code, prise en charge de perldoc,
le formatage des sources avec Perl::Tidy, des modèles de code, un outil d'édition d'expressions régulières et
intégration avec le débogueur Perl. Les versions récentes d'EPIC ont également un support intégré
pour Perl::Critique. Au moins un contributeur de Perl::Critic ne jure que par EPIC. Aller à
<http://e-p-i-c.sourceforge.net> pour plus d'informations sur EPIC.
BBEdit
Josh Clark a produit un excellent plugin Perl-Critic pour BBEdit. Voir
<http://globalmoxie.com/projects/bbedit-perl-critic/index.shtml> à télécharger,
instructions d'installation et d'utilisation. Les utilisateurs d'Apple se réjouissent !
Komodo
Komodo est un IDE propriétaire pour Perl et plusieurs autres langages dynamiques. À partir de
version 5.1.1, Komodo a un support intégré pour Perl-Critic, si vous avez le Perl::Critic
et des modules de critique installés. Des copies d'essai gratuites de Komodo peuvent être obtenues auprès du
Site Web d'ActiveState à l'adressehttp://www.activestate.com>.
ActivePerl
ActivePerl inclut une interface graphique très simple pour configurer et exécuter Perl-
Critique appelée "perlcritic-gui". Une édition communautaire gratuite d'ActivePerl peut être obtenue
sur le site Web d'ActiveState à l'adressehttp://www.activestate.com>.
EXIT STATUT
Si "perlcritic" a lui-même des erreurs, se termine avec le statut == 1. S'il n'y a pas d'erreurs,
mais "perlcritic" trouve des violations de politique dans votre code source, quitte avec le statut == 2. Si
il n'y a eu aucune erreur et aucune violation n'a été trouvée, sorties avec le statut == 0.
THE Perl::Critique PHILOSOPHIE
Les normes de codage sont profondément personnelles et hautement subjectives. Le but de Perl::Critique
est de vous aider à écrire du code conforme à un ensemble de bonnes pratiques. Notre primaire
le but n'est pas de dicter quelles sont ces pratiques, mais plutôt de mettre en œuvre les
pratiques découvertes par d'autres. En fin de compte, vous établissez les règles -- Perl::Critic est
simplement un outil pour encourager la cohérence. S'il existe une politique qui, selon vous, est
important ou que nous avons négligé, nous serions très reconnaissants pour les contributions, ou
vous pouvez simplement charger votre propre ensemble privé de politiques dans Perl::Critic.
EXTENSION THE CRITIQUE
La conception modulaire de Perl::Critic est destinée à faciliter l'ajout de nouvelles politiques.
Vous aurez besoin d'avoir une certaine compréhension de PPI, mais la plupart des modules de politique sont assez
simple et ne nécessite qu'une vingtaine de lignes de code. S'il vous plaît voir le
Perl::Critic::DEVELOPER inclus dans cette distribution pour un pas à pas
démonstration de la façon de créer de nouveaux modules de politique.
Si vous développez de nouveaux modules de politique, n'hésitez pas à les envoyer à "[email protected]>"
et je serai heureux d'envisager de les mettre dans la distribution Perl::Critic. Ou si vous
aimeriez travailler directement sur le projet Perl::Critic, vous pouvez créer notre référentiel à l'adresse
"/github.com/Perl- Critic/Perl- Critic.git" dans http:.
L'équipe Perl::Critic est également disponible à la location. Si votre organisation a son propre codage
normes, nous pouvons créer des politiques personnalisées pour appliquer vos directives locales. Ou si votre
la base de code est sujette à un modèle de défaut particulier, nous pouvons concevoir des politiques qui vous aideront
vous attrapez ces défauts coûteux avant ils entrent en production. Pour discuter de vos besoins avec
l'équipe Perl::Critic, il suffit de contacter "[email protected]>".
CONTACTER THE PREMIUM TEAM
Nous vous encourageons à vous inscrire à la liste de diffusion ; envoyer un message à
<mailto:[email protected]>. Pour éviter le spam, vous devrez peut-être
créer un compte utilisateur sur Tigris.org avant d'être autorisé à publier des messages sur le
liste de diffusion. Voir aussi les archives de la liste de diffusion sur
<http://perlcritic.tigris.org/servlets/SummarizeList?listName=utilisateurs>. Au moins un membre
de l'équipe de développement traîne généralement dans et
vous pouvez suivre Perl::Critic sur Twitter, à .
Utilisez perlcriticp en ligne en utilisant les services onworks.net
