{{tag>programmation}} ======Perl====== Perl est un langage de programmation interprété. =====Tips===== * Afficher la significations des retours des codes d'erreurs (depuis un prompt *sh): perl -le 'print $!+0, "\t", $!++ for 0..127' ====Substitution multi-lignes==== //(à la différence de **sed** qui opère ligne par ligne)// Perl permet facilement de faire des recherches/substitutions sur plusieurs lignes dans un fichier ; par exemple pour supprimer toutes les lignes contenues entre les balises "-----BEGIN" et "-----END" dans le fichier FILE (IRL cela sert à supprimer les certificats dans les fichiers de configuration des Fortigate) : perl -0777 -i -pe 's/[[:blank:]]*set [a-zA-Z0-9-_]* "-----BEGIN.*?-----END.*?\n//igs' FILE Explications : * ''-0777'' impose à perl de lire tout le fichier d'un seul coup * ''-e'' spécifie que le code perl est fourni en argument dans la ligne de commande * ''-p'' permet de boucler * ''-i'' permet d'altérer le fichier source directement (sans spécifier de fichier destination) Pour l'expression régulière : * ''s/'' permet d'introduire une substitution (rappel : ''m/'' (ou juste ''/'') pour juste rechercher) * .*''?'' : quantificateur non gourmand (non-greedy), indique que ''.*'' doit matcher le plus court motif possible (par défaut c'est le plus long) * ''g'' permet d'appliquer autant de fois possible la substitution * ''s'' pour travailler en mode ligne unique (les sauts de ligne sont "transformés" en \n) * ''i'' rend le motif insensible à la casse