logo

Perl kommandolinjeargumenter

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

Perl kommandolinjeargumenter 1

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.

Perl kommandolinjeargumenter 2

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

Perl kommandolinjeargumenter 3

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:

Perl kommandolinjeargumenter 4

Se på utgangen, etter å ha lagt inn alder på konsollen, fikk vi utgangen ovenfor.