Kommandolinjeargumenter sendes til et Perl-program på samme måte som på alle andre språk. @ARGV-matrisen inneholder kommandolinjeargumentet. Det er ikke nødvendig å bruke variabler selv om du bruker 'bruk streng'. Som standard eksisterer denne variabelen alltid, og verdier fra kommandolinjen plasseres automatisk i denne variabelen. For å få tilgang til skriptets kommandolinjeargumenter, trenger du bare å lese fra @ARGV-matrisen.
Perl tillater bruk av @ARGV-array som filnavn ved å bruke . $ARGV inneholder navnet på gjeldende fil når du leser fra .
@ARGV matriseelementer
@ARGV-matrisen fungerer på samme måte som en vanlig matrise. Det første argumentet vil være $ARGV[0], andre $ARGV[1] og så videre.
Perl Command Line Argument Eksempel
La oss se et enkelt eksempel for å skrive ut kommandolinjeargumenter. I dette eksemplet vil vi skrive ut en velkomstmelding med brukernavnet som argument fra kommandolinjen. Vi trenger to kommandolinjeargumenter som brukerens for- og etternavn.
Trinn 1 Lag et skript velkommen.pl i systemet ditt.
#!/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 skriptet ovenfor vil det først sjekke om to kommandolinjeargumenter er gitt eller ikke. Hvis ikke, vil det gi feil inntastingsfeil. Og hvis ja, vil den behandle disse argumentene som henholdsvis $ARGV[0] og $ARGV[1].
Steg 2 Kjør skriptet i konsollen som perl welcome.pl Christian Grey
Merk: Før du gir denne kommandoen, sørg for at du er i katalogen som inneholder skriptet ditt welcome.pl
Dette er utgangen du vil få i konsollen.
Steg 2 Kjør skriptet i konsollen som perl velkommen.pl Christian
Her sender vi bare ett argument fra kommandolinjen.
I utdataene kan du se feil oppføringsmelding for å sende ett argument.
Perl kommandolinjeargumenter Eksempel ved bruk av Loop
Nå skal vi kjøre en løkke for å skrive ut kommandolinjeargumentene. I dette eksemplet kan du legge inn så mange argumenter du ønsker.
Trinn 1 Lag et skript loop.pl i systemet ditt.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Steg 2 Kjør skriptet i konsollen som perl loop.pl a b c d e f g h
Se på utdataene ovenfor, den viser også totale argumenter sendt på kommandolinjen. Her har vi passert 8 argumenter.
Perl Getopt::Lang
De enkle kommandolinjealternativene gjøres ved å bruke ?s-alternativet. Komplekse kommandolinjealternativer gjøres ved å bruke Getopt::Std og Getopt::Long.
Getopt står for GetOptions . Den behandler innholdet til @ARGV basert på konfigurasjonen vi gir den. Den returnerer sann eller usann verdi basert på behandlingen.
Eksempel:
I dette eksemplet får vi alderen til brukeren 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 deklarert en variabel $x som vil lagre verdi satt inn i --fra fra standardkonsollen. De fra=s erklærer kommandolinjeparameter kalt --fra med en snor etter. Den er kartlagt videre til variabelen $x. Omvendt skråstrek () betyr at vi sender en referanse til variabelen.
Dette skriptet vil bytte til de del bare når vi skal kjøre dette skriptet ved å sende noe som ser ut som et parameternavn og starter med a (-) men er ikke deklarert i dette skriptet.
Nå skal vi kjøre dette programmet.
Produksjon:
Se på utgangen, etter å ha lagt inn alder på konsollen, fikk vi utgangen ovenfor.