logo

Perlin komentorivin argumentit

Komentoriviargumentit lähetetään Perl-ohjelmaan samalla tavalla kuin muillakin kielillä. @ARGV-taulukko sisältää komentoriviargumentin. Muuttujia ei tarvitse käyttää, vaikka käyttäisit 'käytä tiukkaa'. Oletusarvon mukaan tämä muuttuja on aina olemassa ja komentorivin arvot sijoitetaan automaattisesti tämän muuttujan sisään. Jos haluat käyttää komentosarjasi komentoriviargumentteja, sinun tarvitsee vain lukea @ARGV-taulukosta.

Perl sallii @ARGV-taulukon käyttämisen tiedostoniminä käyttämällä . $ARGV sisältää nykyisen tiedoston nimen luettaessa tiedostosta .

@ARGV-taulukon elementit

@ARGV-taulukko toimii samalla tavalla kuin tavallinen taulukko. Sen ensimmäinen argumentti on $ARGV[0], toinen $ARGV[1] ja niin edelleen.


Esimerkki Perlin komentoriviargumentista

Katsotaanpa yksinkertainen esimerkki komentoriviargumenttien tulostamisesta. Tässä esimerkissä tulostamme tervetuloviestin, jossa on käyttäjän nimi argumenttina komentoriviltä. Tarvitsemme kaksi komentoriviargumenttia käyttäjän etu- ja sukunimeksi.

Vaihe 1 Luo käsikirjoitus tervetuloa.pl järjestelmässäsi.

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

Yllä olevassa skriptissä se tarkistaa ensin, onko kaksi komentoriviargumenttia annettu vai ei. Jos ei, se antaa väärän syöttövirheen. Ja jos kyllä, se käsittelee nämä argumentit muodossa $ARGV[0] ja $ARGV[1].

Vaihe 2 Suorita komentosarja konsolissasi nimellä perl welcome.pl Christian Gray

Huomautus: Ennen kuin annat tämän komennon, varmista, että olet hakemistossa, joka sisältää skriptin welcome.pl

Perlin komentorivin argumentit 1

Tämä on tulos, jonka saat konsoliisi.

Vaihe 2 Suorita komentosarja konsolissasi nimellä perl tervetuloa.pl Christian

Tässä välitämme vain yhden argumentin komentoriviltä.

Perlin komentorivin argumentit 2

Tulosteessa voit nähdä väärän syöttöviestin yhden argumentin välittämiseksi.


Perl-komentorivi-argumentit Esimerkki silmukan avulla

Nyt suoritamme silmukan komentorivin argumenttien tulostamiseksi. Tässä esimerkissä voit syöttää niin monta argumenttia kuin haluat.

Vaihe 1 Luo käsikirjoitus loop.pl järjestelmässäsi.

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

Vaihe 2 Suorita komentosarja konsolissasi nimellä perl loop.pl a b c d e f g h

Perlin komentorivin argumentit 3

Katso yllä olevaa tulostetta, se näyttää myös komentorivillä välitetyt argumentit. Tässä olemme läpäisseet 8 argumenttia.


Perl Getopt::Long

Yksinkertaiset komentorivin valinnat tehdään käyttämällä ?s-optiota. Monimutkaiset komentorivin valinnat tehdään käyttämällä Getopt::Std ja Getopt::Long.

Getopt tarkoittaa GetOptions . Se käsittelee @ARGV:n sisältöä sille antamamme kokoonpanon perusteella. Se palauttaa oikean tai väärän arvon käsittelyn perusteella.

Esimerkki:

Tässä esimerkissä saamme hyvin käyttäjän iän komentoriviltä.

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

Olemme ilmoittaneet muuttujan $x joka tallentaa lisätyn arvon -- alkaen vakiokonsolista. The from=s ilmoittaa kutsutun komentoriviparametrin -- alkaen merkkijonolla sen jälkeen. Se kartoitetaan edelleen muuttujaan $x. Kenoviiva () tarkoittaa, että välitämme viittauksen muuttujaan.

Tämä skripti vaihtuu the osa vain, kun suoritamme tämän skriptin antamalla jotain, joka näyttää parametrin nimellä ja alkaa kirjaimella a (-) mutta sitä ei ole ilmoitettu tässä käsikirjoituksessa.

Nyt suoritamme tämän ohjelman.

Lähtö:

Perlin komentorivin argumentit 4

Katso tulosta, kun olet syöttänyt iän konsoliin, saimme yllä olevan lähdön.