Les options de ligne de commande en Perl pourraient être utiles pour effectuer efficacement des tâches plus petites.
Dans cet article, voyons comment utiliser les options de ligne de commande Perl pour effectuer les tâches suivantes :
- Modifier le contenu du fichier
- Séparateur de ligne de poignée
- Vérifier les erreurs de syntaxe
- Charger les modules
- Effectuer une boucle
- Exécuter le code perl
- Définir le séparateur de ligne d'entrée
- Diviser la ligne d'entrée
- etc.,
1. Option Perl -i :Modifier le contenu du fichier
Il ouvre les fichiers un par un et remplace le contenu par STDOUT.
Utilisons le fichier sample.txt suivant pour convertir son contenu en majuscules, comme indiqué ci-dessous.
$ cat sample.txt Practical Extraction Report Language $ perl -pi -e “tr/[a-z]/[A-Z]/” sample.txt $ cat sample.txt PRACTICAL EXTRACTION REPORT LANGUAGE
Vous pouvez également sauvegarder le fichier d'origine comme indiqué ci-dessous :
$ perl -pi.bak -e “tr/[a-z]/[A-Z]/” sample.txt $ cat sample.txt PRACTICAL EXTRACTION REPORT LANGUAGE $ cat sample.txt.bak Practical Extraction Report Language
Pour déboguer un programme Perl, utilisez le débogueur Perl comme nous l'avons expliqué précédemment.
2. Option Perl -l :Gestion des séparateurs de lignes
Le séparateur de ligne prend la valeur octale comme argument. Voici quelques exemples de séparateurs courants et leur valeur octale.
Character Octal Value ========= ========= new line(\n) 012 tab(\t) 011 space 040 & 046
Remarque :utilisez la commande "man ascii" pour connaître la valeur octale de tous les caractères.
Exemple d'utilisation du séparateur de ligne :
$ perl -p -l046 -e “tr/[a-z]/[A-Z]/”; bala Output : BALA&
Reportez-vous également à 6 fonctions d'évaluation Perl pour une lecture supplémentaire.
3. Option Perl -c :vérifier les erreurs de syntaxe
L'option -c compile votre programme sans l'exécuter pour s'assurer qu'aucune erreur de syntaxe n'est présente dans votre programme.
$ perl -c sample.pl
4. Option Perl -M :pour le chargement des modules
Avec l'option Perl -M, nous pouvons charger les modules souhaités comme indiqué ci-dessous.
$ perl -MFile::Copy -e ‘move(“sample.txt”,”/tmp”);’
L'option -m charge également les modules mais n'importe rien. Voici la différence :
- -MFile::Copy est égal à "use File::Copy ; "
- -mFile::Copy est égal à "use File::Copy()"
Nous avons également discuté de l'option -M dans nos 20 conseils de programmation Killer Perl précédents.
5. Option Perl -n et -p :boucle implicite
L'option -n encapsule votre code dans la boucle comme indiqué ci-dessous.
while(<>) { # perl code }
L'extrait suivant décrit mieux cela.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; }
En utilisant -n, nous pouvons réécrire l'extrait de code ci-dessus comme indiqué ci-dessous.
$ perl -n -e ‘tr/[a-z]/[A-Z]/;print’
L'option -p encapsule votre code dans la boucle comme indiqué ci-dessous.
while(<>) { # perl code print; }
L'extrait suivant décrit mieux cela.
while(<>) { $_ =~ tr/[a-z]/[A-Z]/; print; }
En utilisant -p, nous pouvons réécrire l'extrait de code ci-dessus comme indiqué ci-dessous.
$ perl -p -e “tr/[a-z]/[A-Z]/”;
Si vous développez beaucoup de code Perl, vous devriez lire le livre des meilleures pratiques Perl.
6. Option Perl -e :exécute le code perl dans la ligne de commande elle-même
Un programme Perl simple ou court peut être écrit dans la ligne de commande elle-même avec cette option comme indiqué ci-dessous.
$ perl -e “print \”Username : $ENV{USER}”
7. Option Perl -0 : saisir un séparateur d'enregistrements
En utilisant l'option -0, nous pouvons changer le "séparateur d'enregistrement d'entrée" de nouvelle ligne à autre chose comme indiqué ci-dessous.
$ perl -p -0046 -e “tr/[a-z]/[A-Z]/”; bala raja& Output : BALA RAJA&
Dans l'exemple ci-dessus, 046 est la valeur octale du caractère "&". Ainsi, après avoir reçu le caractère &, Perl le considère comme la fin d'un enregistrement et effectue ensuite l'opération de traduction.
8. Option Perl -a :fractionner la ligne d'entrée
Il divise le $_ en @F avec le délimiteur comme espace.
L'exemple suivant illustre l'option -a.
$ cat emp_salary.txt bala 10000 rajesh 12300 kumar 14000 $ perl -n -l012 -a -e ‘print “$F[1]“‘ emp_salary.txt 10000 12300 14000
Par défaut, il prend de l'espace comme délimiteur et effectue l'opération de fractionnement. Le délimiteur peut être modifié en utilisant l'option -F comme indiqué ci-dessous.
$ cat emp_salary.txt bala:10000 rajesh:12300 kumar:14000 $ perl -n -l012 -F: -a -e ‘print “$F[1]“‘ emp_salary 10000 12300 14000