Pour effectuer ceci, nous utilisons deux options de ligne de commande. L'option -p lit chaque fichier dont le nom est passé en argument au script, effectue une action sur chaque ligne puis l'affiche sur la sortie standard.
Par exemple, le script suivant affichera le fichier passé en paramètre après avoir converti toutes les lignes en minuscules.
#!/usr/local/bin/perl -p lc($_);
Il peut s'écrire également en ligne de commande de la manière suivante :
perl -p -e 'lc($_)' fichier.txt
L'option -e permet d'indiquer une expression à évaluer. Plusieurs options -e peuvent être fournies au script, auquel cas toutes les expressions passées seront concaténées, et le script résultant exécuté.
L'utilisation de ces options est particulièrement pratique lorsqu'elles sont combinées à l'option -i (qui signifie in-place).
Cette option modifie le comportement de l'option -p : chaque ligne, au lieu d'être réecrite sur la sortie standard, est écrite dans un fichier, qui sera ensuite recopié à la place du fichier original.
Si l'on fournit un paramètre à cette option ( -i.bak), une copie du fichier original sera effectuée, en ajoutant l'extension précisée au nom du fichier, avant de procéder à la suite des opérations.
En pratique, si l'on veut substituer un mot pour un autre dans plusieurs fichiers, il suffit d'écrire :
perl -pi.bak -e 's/oldstr/newstr/g' *