logo

Arguments de ligne de commande Perl

Les arguments de ligne de commande sont envoyés à un programme Perl de la même manière que dans n'importe quel autre langage. Le tableau @ARGV contient l'argument de ligne de commande. Il n'est pas nécessaire d'utiliser des variables même si vous utilisez « use strict ». Par défaut, cette variable existe toujours et les valeurs de la ligne de commande sont automatiquement placées à l'intérieur de cette variable. Pour accéder aux arguments de ligne de commande de votre script, il vous suffit de lire le tableau @ARGV.

Perl permet d'utiliser le tableau @ARGV comme noms de fichiers en utilisant . Le $ARGV contient le nom du fichier actuel lors de la lecture à partir de .

Éléments du tableau @ARGV

Le tableau @ARGV fonctionne de la même manière qu'un tableau normal. Son premier argument sera $ARGV[0], le deuxième $ARGV[1], et ainsi de suite.


Exemple d'argument de ligne de commande Perl

Voyons un exemple simple pour imprimer les arguments de ligne de commande. Dans cet exemple, nous imprimerons un message de bienvenue avec le nom de l'utilisateur comme argument de la ligne de commande. Nous avons besoin de deux arguments de ligne de commande comme nom et prénom de l’utilisateur.

Étape 1 Créer un script bienvenue.pl dans votre système.

 #!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name.
'; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint.
'; 

Dans le script ci-dessus, il vérifiera d’abord si deux arguments de ligne de commande sont fournis ou non. Sinon, cela donnera une mauvaise erreur de saisie. Et si oui, il traitera ces arguments comme $ARGV[0] et $ARGV[1] respectivement.

Étape 2 Exécutez le script dans votre console comme perl bienvenue.pl Christian Gray

Remarque : Avant de donner cette commande, assurez-vous que vous êtes sur le répertoire contenant votre script bienvenue.pl

Arguments de ligne de commande Perl 1

C'est la sortie que vous obtiendrez dans votre console.

Étape 2 Exécutez le script dans votre console comme perl bienvenue.pl Christian

Ici, nous ne transmettons qu'un seul argument de la ligne de commande.

Arguments de ligne de commande Perl 2

Dans la sortie, vous pouvez voir le mauvais message d’entrée pour avoir transmis un argument.


Exemple d'arguments de ligne de commande Perl utilisant une boucle

Nous allons maintenant exécuter une boucle pour imprimer les arguments de la ligne de commande. Dans cet exemple, vous pouvez saisir autant d'arguments que vous le souhaitez.

Étape 1 Créer un script boucle.pl dans votre système.

 #!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args
'; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument]
'; } 

Étape 2 Exécutez le script dans votre console comme boucle perl.pl a b c d e f g h

Arguments de ligne de commande Perl 3

Regardez le résultat ci-dessus, il affiche également le nombre total d'arguments transmis sur la ligne de commande. Ici, nous avons passé 8 arguments.


Perl Getopt :: Long

Les options simples de ligne de commande sont effectuées à l’aide de l’option ?s. Les options de ligne de commande complexes sont effectuées à l'aide de Getopt :: Std et Getopt :: Long.

Getopt signifie ObtenirOptions . Il traite le contenu de @ARGV en fonction de la configuration que nous lui donnons. Il renvoie une valeur vraie ou fausse en fonction du traitement.

Exemple:

Dans cet exemple, nous obtenons bien l’âge de l’utilisateur à partir de la ligne de commande.

 use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME
'; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; } 

Nous avons déclaré une variable x $ qui stockera la valeur insérée dans --depuis depuis la console standard. Le de=s déclare le paramètre de ligne de commande appelé --depuis avec une chaîne après. Il est ensuite mappé à la variable $x. La barre oblique inverse () signifie que nous passons une référence à la variable.

Ce script passera à le partie seulement lorsque nous exécuterons ce script en passant quelque chose qui ressemble à un nom de paramètre et commence par un (-) mais n'est pas déclaré dans ce script.

Maintenant, nous allons exécuter ce programme.

Sortir:

Arguments de ligne de commande Perl 4

Regardez le résultat, après avoir entré l'âge sur la console, nous avons obtenu le résultat ci-dessus.