{{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