logo

„Perl“ komandų eilutės argumentai

Komandinės eilutės argumentai Perl programai siunčiami taip pat, kaip ir bet kuria kita kalba. @ARGV masyvas turi komandinės eilutės argumentą. Nereikia naudoti kintamųjų, net jei naudojate „naudokite griežtą“. Pagal numatytuosius nustatymus šis kintamasis visada egzistuoja, o vertės iš komandinės eilutės automatiškai įtraukiamos į šį kintamąjį. Norėdami pasiekti savo scenarijaus komandinės eilutės argumentus, tereikia skaityti iš @ARGV masyvo.

Perl leidžia naudoti @ARGV masyvą kaip failų pavadinimus naudojant . $ARGV yra dabartinio failo pavadinimas skaitant iš .

@ARGV masyvo elementai

@ARGV masyvas veikia taip pat kaip įprastas masyvas. Pirmasis jo argumentas bus $ARGV[0], antrasis $ARGV[1] ir pan.


Perl komandinės eilutės argumento pavyzdys

Pažiūrėkime paprastą pavyzdį, kaip spausdinti komandinės eilutės argumentus. Šiame pavyzdyje mes išspausdinsime pasveikinimo pranešimą su vartotojo vardu kaip argumentu iš komandinės eilutės. Mums reikia dviejų komandinės eilutės argumentų kaip vartotojo vardo ir pavardės.

1 žingsnis Sukurkite scenarijų sveiki atvykę.pl jūsų sistemoje.

 #!/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.
'; 

Aukščiau pateiktame scenarijuje pirmiausia jis patikrins, ar pateikti du komandinės eilutės argumentai, ar ne. Jei ne, bus klaidinga įvesties klaida. Ir jei taip, jis apdoros tuos argumentus atitinkamai kaip $ARGV[0] ir $ARGV[1].

2 žingsnis Paleiskite scenarijų savo konsolėje kaip perl welcome.pl Christian Gray

Pastaba: prieš duodami šią komandą įsitikinkite, kad esate kataloge, kuriame yra jūsų scenarijus welcome.pl

„Perl“ komandų eilutės argumentai 1

Tai yra išvestis, kurią gausite savo konsolėje.

2 žingsnis Paleiskite scenarijų savo konsolėje kaip perl sveiki atvykę.pl Kristianas

Čia mes perduodame tik vieną argumentą iš komandinės eilutės.

„Perl“ komandų eilutės argumentai 2

Išvestyje galite pamatyti neteisingą įvesties pranešimą, perduodantį vieną argumentą.


Perl komandų eilutės argumentų pavyzdys naudojant kilpą

Dabar paleisime kilpą, kad išspausdintume komandinės eilutės argumentus. Šiame pavyzdyje galite įvesti tiek argumentų, kiek norite.

1 žingsnis Sukurkite scenarijų loop.pl jūsų sistemoje.

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

2 žingsnis Paleiskite scenarijų savo konsolėje kaip perlo kilpa.pl a b c d e f g h

„Perl“ komandų eilutės argumentai 3

Pažvelkite į aukščiau pateiktą išvestį, joje taip pat rodomi visi komandinėje eilutėje perduodami argumentai. Čia išnagrinėjome 8 argumentus.


Perl Getopt::Long

Paprastos komandų eilutės parinktys atliekamos naudojant ?s parinktį. Sudėtingos komandų eilutės parinktys atliekamos naudojant Getopt::Std ir Getopt::Long.

Getopt reiškia GetOptions . Jis apdoroja @ARGV turinį pagal konfigūraciją, kurią jam suteikiame. Jis grąžina tikrąją arba klaidingą vertę pagal apdorojimą.

Pavyzdys:

Šiame pavyzdyje mes gerai gauname vartotojo amžių iš komandinės eilutės.

 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'; } 

Mes paskelbėme kintamąjį x $ kurioje bus saugoma įterpta vertė --nuo iš standartinės konsolės. The nuo=s skelbia komandinės eilutės parametrą iškviestas --nuo su styga po jos. Jis susietas toliau su kintamuoju $x. Pasvirasis brūkšnys () reiškia, kad perduodame nuorodą į kintamąjį.

Šis scenarijus persijungs į į dalis tik tada, kai paleisime šį scenarijų, perduodami kažką, kas atrodo kaip parametro pavadinimas ir prasideda raide a (-) bet šiame scenarijuje nėra deklaruojamas.

Dabar mes paleisime šią programą.

Išvestis:

„Perl“ komandų eilutės argumentai 4

Pažiūrėkite į išvestį, konsolėje įvedę amžių, gavome aukščiau pateiktą išvestį.