Els arguments de la línia d'ordres s'envien a un programa Perl de la mateixa manera que en qualsevol altre llenguatge. La matriu @ARGV conté l'argument de la línia d'ordres. No cal utilitzar variables encara que utilitzeu 'utilitza estricte'. Per defecte, aquesta variable sempre existeix i els valors de la línia d'ordres es col·loquen automàticament dins d'aquesta variable. Per accedir als arguments de la línia d'ordres del vostre script, només heu de llegir des de la matriu @ARGV.
Perl permet utilitzar la matriu @ARGV com a noms de fitxer mitjançant . El $ARGV conté el nom del fitxer actual quan es llegeix des de .
Elements de matriu @ARGV
La matriu @ARGV funciona igual que una matriu normal. El seu primer argument serà $ARGV[0], el segon $ARGV[1], i així successivament.
Exemple d'argument de la línia d'ordres de Perl
Vegem un exemple senzill per imprimir arguments de línia d'ordres. En aquest exemple, imprimirem un missatge de benvinguda amb el nom de l'usuari com a argument de la línia d'ordres. Necessitem dos arguments de línia d'ordres com a nom i cognom de l'usuari.
Pas 1 Crea un guió welcome.pl al vostre sistema.
#!/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. ';
A l'script anterior, primer comprovarà si es proporcionen dos arguments de línia d'ordres o no. Si no, donarà un error d'entrada incorrecte. I si és així, processarà aquests arguments com a $ARGV[0] i $ARGV[1] respectivament.
Pas 2 Executeu l'script a la vostra consola com perl welcome.pl Christian Grey
Nota: abans de donar aquesta ordre, assegureu-vos que esteu al directori que conté el vostre script welcome.pl
Aquesta és la sortida que obtindreu a la vostra consola.
Pas 2 Executeu l'script a la vostra consola com perl welcome.pl Christian
Aquí, estem passant només un argument de la línia d'ordres.
A la sortida, podeu veure el missatge d'entrada incorrecte per passar un argument.
Exemple d'arguments de línia d'ordres de Perl utilitzant Loop
Ara executarem un bucle per imprimir els arguments de la línia d'ordres. En aquest exemple, podeu introduir tants arguments com vulgueu.
Pas 1 Creeu un guió loop.pl al vostre sistema.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Pas 2 Executeu l'script a la vostra consola com bucle perl.pl a b c d e f g h
Mireu la sortida anterior, també mostra els arguments totals passats a la línia d'ordres. Aquí hem passat 8 arguments.
Perl Getopt::Llarg
Les opcions simples de la línia d'ordres es fan mitjançant l'opció ?s. Les opcions complexes de la línia d'ordres es fan amb Getopt::Std i Getopt::Long.
Getopt significa GetOptions . Processa el contingut de @ARGV en funció de la configuració que li donem. Retorna un valor vertader o fals en funció del processament.
Exemple:
En aquest exemple, obtenim bé l'edat de l'usuari des de la línia d'ordres.
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'; }
Hem declarat una variable $x que emmagatzemarà el valor inserit --des de des de la consola estàndard. El de=s declara el paràmetre de línia d'ordres anomenat --des de amb una corda darrere. S'assigna més a la variable $x. La barra invertida () significa que estem passant una referència a la variable.
Aquest script canviarà a el part només quan executarem aquest script passant alguna cosa que sembla un nom de paràmetre i comença amb a (-) però no es declara en aquest guió.
Ara, executarem aquest programa.
Sortida:
Mireu la sortida, després d'introduir l'edat a la consola, tenim la sortida anterior.