Kommandolinjeargumenter sendes til et Perl-program på samme måde som på ethvert andet sprog. @ARGV-arrayet indeholder kommandolinjeargumentet. Der er ingen grund til at bruge variabler, selvom du bruger 'brug streng'. Som standard eksisterer denne variabel altid, og værdier fra kommandolinjen placeres automatisk inde i denne variabel. For at få adgang til dit scripts kommandolinjeargumenter skal du blot læse fra @ARGV-array.
Perl tillader brug af @ARGV-array som filnavne ved at bruge . $ARGV indeholder navnet på den aktuelle fil, når du læser fra .
@ARGV array-elementer
@ARGV-arrayet fungerer på samme måde som et normalt array. Dets første argument vil være $ARGV[0], andet $ARGV[1] og så videre.
Perl Command Line Argument Eksempel
Lad os se et simpelt eksempel på at udskrive kommandolinjeargumenter. I dette eksempel vil vi udskrive en velkomstmeddelelse med brugernavnet som argument fra kommandolinjen. Vi har brug for to kommandolinjeargumenter som brugerens for- og efternavn.
Trin 1 Opret et script velkommen.pl i dit system.
#!/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. ';
I ovenstående script vil det først kontrollere, om der er angivet to kommandolinjeargumenter eller ej. Hvis ikke, vil det give en forkert indtastningsfejl. Og hvis ja, vil den behandle disse argumenter som henholdsvis $ARGV[0] og $ARGV[1].
Trin 2 Kør scriptet i din konsol som perl welcome.pl Christian Grey
Bemærk: Før du giver denne kommando, skal du sørge for, at du er i mappen, der indeholder dit script welcome.pl
Dette er det output, du får i din konsol.
Trin 2 Kør scriptet i din konsol som perl velkommen.pl Christian
Her sender vi kun ét argument fra kommandolinjen.
I outputtet kan du se den forkerte indtastningsmeddelelse for at sende et argument.
Perl Kommandolinje Argumenter Eksempel ved brug af Loop
Nu vil vi køre en løkke for at udskrive kommandolinjeargumenterne. I dette eksempel kan du indtaste lige så mange argumenter, som du ønsker.
Trin 1 Opret et script loop.pl i dit system.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Trin 2 Kør scriptet i din konsol som perl loop.pl a b c d e f g h
Se på outputtet ovenfor, det viser også samlede argumenter, der er sendt på kommandolinjen. Her har vi passeret 8 argumenter.
Perl Getopt::Lang
De enkle kommandolinjeindstillinger udføres ved hjælp af ?s option. Komplekse kommandolinjeindstillinger udføres ved hjælp af Getopt::Std og Getopt::Long.
Getopt står for GetOptions . Den behandler indholdet af @ARGV baseret på den konfiguration, vi giver den. Det returnerer sand eller falsk værdi baseret på behandlingen.
Eksempel:
I dette eksempel får vi godt brugerens alder fra kommandolinjen.
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'; }
Vi har erklæret en variabel $x som vil gemme værdi indsat i --fra fra standardkonsollen. Det fra=s erklærer kommandolinjeparameteren kaldet --fra med en snor efter. Den er kortlagt videre til variablen $x. Omvendt skråstreg () betyder, at vi sender en reference til variablen.
Dette script vil skifte til det del kun, når vi vil køre dette script ved at sende noget, der ligner et parameternavn og starter med a (-) men er ikke erklæret i dette script.
Nu vil vi køre dette program.
Produktion:
Se på outputtet, efter at have indtastet alder på konsollen, fik vi ovenstående output.