A parancssori argumentumokat ugyanúgy küldi el egy Perl programnak, mint bármely más nyelven. Az @ARGV tömb tartalmazza a parancssori argumentumot. Nincs szükség változók használatára, még akkor sem, ha a „use szigorú” kifejezést használja. Alapértelmezés szerint ez a változó mindig létezik, és a parancssorból származó értékek automatikusan ebbe a változóba kerülnek. A szkript parancssori argumentumainak eléréséhez csak az @ARGV tömbből kell olvasnia.
A Perl lehetővé teszi az @ARGV tömb használatát fájlnévként a használatával. Az $ARGV tartalmazza az aktuális fájl nevét, amikor innen olvas.
@ARGV tömbelemek
Az @ARGV tömb ugyanúgy működik, mint egy normál tömb. Első argumentuma $ARGV[0], második $ARGV[1], és így tovább.
Példa Perl parancssori argumentumra
Lássunk egy egyszerű példát a parancssori argumentumok nyomtatására. Ebben a példában üdvözlő üzenetet fogunk nyomtatni, amelyben a felhasználó neve lesz a parancssor argumentuma. Két parancssori argumentumra van szükségünk a felhasználó kereszt- és vezetékneveként.
1. lépés Hozzon létre egy szkriptet üdvözlöm.pl a rendszeredben.
#!/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. ';
A fenti szkriptben először ellenőrzi, hogy két parancssori argumentum megadva van-e vagy sem. Ha nem, akkor rossz beviteli hibát ad. És ha igen, akkor ezeket az argumentumokat $ARGV[0] és $ARGV[1] néven fogja feldolgozni.
2. lépés Futtassa a szkriptet a konzolon, mint perl welcome.pl Christian Gray
Megjegyzés: Mielőtt kiadná ezt a parancsot, győződjön meg arról, hogy a welcome.pl szkriptet tartalmazó könyvtárban van
Ez a kimenet, amelyet a konzolon fog kapni.
2. lépés Futtassa a szkriptet a konzolon, mint perl welcome.pl Christian
Itt csak egy argumentumot adunk át a parancssorból.
A kimenetben egy argumentum átadásakor rossz beviteli üzenet látható.
Példa a Perl parancssori argumentumokra a ciklus használatával
Most futtatunk egy ciklust a parancssori argumentumok kinyomtatásához. Ebben a példában annyi argumentumot adhat meg, amennyit csak akar.
1. lépés Hozzon létre egy szkriptet loop.pl a rendszeredben.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
2. lépés Futtassa a szkriptet a konzolon, mint perl hurok.pl a b c d e f g h
Nézze meg a fenti kimenetet, a parancssorban átadott összes argumentumot is megjeleníti. Itt 8 érvet haladtunk át.
Perl Getopt::Long
Az egyszerű parancssori opciókat az ?s kapcsolóval lehet végrehajtani. Az összetett parancssori beállítások a Getopt::Std és a Getopt::Long használatával érhetők el.
A Getopt azt jelenti GetOptions . A @ARGV tartalmát az általunk megadott konfiguráció alapján dolgozza fel. Igaz vagy hamis értéket ad vissza a feldolgozás alapján.
Példa:
Ebben a példában jól megkapjuk a parancssorból a felhasználó életkorát.
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'; }
Deklaráltunk egy változót $x amelybe beszúrt értéket tárol --tól től a standard konzolról. A from=s kimondja a meghívott parancssori paramétert --tól től egy madzaggal utána. Továbbra is leképeződik a $x változóra. A fordított perjel () azt jelenti, hogy hivatkozást adunk át a változóra.
Ez a szkript erre fog váltani a részt csak akkor fogjuk futtatni ezt a szkriptet, ha átadunk valamit, ami úgy néz ki, mint egy paraméternév, és a betűvel kezdődik (-) de ebben a szkriptben nincs deklarálva.
Most ezt a programot fogjuk futtatni.
Kimenet:
Nézd meg a kimenetet, a konzolon az életkor megadása után a fenti kimenetet kaptuk.