Formater du code Perl

Seuls les espaces sont réécrits : sigils, commentaires, expressions régulières, heredocs et POD reviennent exactement tels qu’ils ont été saisis. C’est un formateur de mise en page, pas Perl::Tidy, et il ne vérifie ni ne répare la syntaxe.

Fonctionne localement dans votre navigateur
Copier

Comment formater du code Perl dans le navigateur

Collez un extrait Perl : l’outil renvoie le même programme avec une indentation régulière, une instruction par ligne, le style d’accolades choisi et un retour à la ligne facultatif. Seuls les espaces entre les jetons sont réécrits : sigils, commentaires, expressions régulières, heredocs, POD et indices sont copiés octet par octet, le résultat est donc le même programme Perl, simplement plus lisible.

Le formateur s’exécute entièrement dans cet onglet et le code n’est jamais envoyé. C’est un formateur de mise en page, ni Perl::Tidy ni un vérificateur de syntaxe : il ne compile, ne valide et ne répare rien ; un fichier cassé revient cassé, simplement présenté de façon cohérente.

  1. Collez le code Perl dans la zone et cliquez sur Formatage du code Perl, ou Ctrl/⌘+Entrée. Chaque exécution remplace le résultat précédent.
  2. Choisissez l’indentation (tabulation ou 2, 3, 4, 8 espaces), le nombre de lignes vides conservées, le style d’accolades et le retour à la ligne à 80 ou 120 caractères.
  3. Cliquez sur Copier pour récupérer le résultat, ou sur Effacer pour vider les deux zones avant l’extrait suivant.
  4. Le retour à la ligne ne coupe qu’après les virgules, et la continuation est indentée d’un niveau exactement ; choisissez Aucun retour à la ligne pour garder chaque instruction sur une seule ligne.

Ce que le formateur change — et ce qui reste identique

Ce que le formateur change

Formater, c’est réécrire des espaces. La séquence de jetons en sortie est identique à celle de l’entrée, ce qui protège les parties de Perl les plus fragiles : les sigils $, @ et %, les commentaires de # jusqu’à la fin de ligne, les expressions régulières comme /^Error: (\d+)/ et les substitutions comme s/#/\#/g, les opérateurs =~ et !~, les chaînes de déréférencement ->, les indices de hash et de tableau comme $h{a} et $list[0], les opérateurs de citation (q, qq, qw, qx, qr, m, s, tr, y), les heredocs avec leur contenu, les blocs POD et les sections __END__/__DATA__.

Chaque jeton étant recopié tel quel, rien ne peut être réécrit en silence : contenu des chaînes, motifs d’expressions régulières et commentaires reviennent exactement tels qu’ils ont été saisis. Une vérification rapide : le code formaté contient les mêmes caractères que l’entrée, seul l’espacement change.

Les options en pratique

L’indentation s’applique aux blocs ouverts par des accolades ; choisissez tabulation ou 2, 3, 4 ou 8 espaces. Les lignes vides sont limitées au seuil choisi, de la suppression totale à la conservation de toutes. Le style d’accolades détermine la place de l’accolade ouvrante : sur la même ligne que sub, if, while et compagnie (présentation Perl habituelle, K&R), sur sa propre ligne (Allman), ou sur la même ligne avec else et elsif déplacés après l’accolade fermante.

Le retour à la ligne ne coupe jamais un jeton : lorsqu’une ligne dépasse la longueur choisie, la coupure se fait après les virgules et la continuation est indentée d’un niveau exactement. Les blocs map, grep et sort d’une seule ligne qui tiennent restent en ligne ; le reste est développé sur des lignes distinctes.

Ce qu’il ne fait pas

Le formateur n’exécute pas perl -c : il ne vérifie pas la syntaxe, ne résout pas les modules, n’évalue pas les blocs BEGIN et ne signale aucune erreur. Si l’entrée contient un guillemet non fermé, un point-virgule manquant ou une accolade en trop, la sortie conserve le problème ; réparer du code relève d’un linter ou de l’interpréteur, pas d’une passe de mise en page.

Il ne restructure pas non plus le programme : les instructions ne sont pas réordonnées, les expressions ne sont pas réécrites, et le formateur n’a pas d’avis sur le meilleur de deux idiomes équivalents. Gardez une copie de l’original et comparez le résultat comme pour tout fichier formaté.

Outils récents :