Opdrachtregelargumenten worden op dezelfde manier naar een Perl-programma verzonden als in elke andere taal. De @ARGV-array bevat het opdrachtregelargument. Het is niet nodig om variabelen te gebruiken, zelfs als u 'use strict' gebruikt. Standaard bestaat deze variabele altijd en worden waarden van de opdrachtregel automatisch in deze variabele geplaatst. Om toegang te krijgen tot de opdrachtregelargumenten van uw script hoeft u alleen maar de @ARGV-array te lezen.
Perl maakt het gebruik van een @ARGV-array als bestandsnaam mogelijk door gebruik te maken van . De $ARGV bevat de naam van het huidige bestand bij het lezen van .
@ARGV-array-elementen
De @ARGV-array werkt hetzelfde als een normale array. Het eerste argument is $ARGV[0], het tweede $ARGV[1], enzovoort.
Voorbeeld van een Perl-opdrachtregelargument
Laten we een eenvoudig voorbeeld bekijken om opdrachtregelargumenten af te drukken. In dit voorbeeld printen we een welkomstbericht met de gebruikersnaam als argument vanaf de opdrachtregel. We hebben twee opdrachtregelargumenten nodig als de voor- en achternaam van de gebruiker.
Stap 1 Maak een script welkom.pl in uw systeem.
#!/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. ';
In het bovenstaande script wordt eerst gecontroleerd of er twee opdrachtregelargumenten zijn opgegeven of niet. Als dit niet het geval is, wordt er een verkeerde invoerfout weergegeven. En zo ja, dan verwerkt het deze argumenten respectievelijk als $ARGV[0] en $ARGV[1].
Stap 2 Voer het script uit in uw console als perl welkom.pl Christian Gray
Opmerking: Voordat u deze opdracht geeft, moet u ervoor zorgen dat u zich in de map bevindt die uw script Welcome.pl bevat
Dit is de uitvoer die u in uw console krijgt.
Stap 2 Voer het script uit in uw console als perl welkom.pl Christelijk
Hier geven we slechts één argument door vanaf de opdrachtregel.
In de uitvoer ziet u het verkeerde invoerbericht voor het doorgeven van één argument.
Perl-opdrachtregelargumenten Voorbeeld met behulp van Loop
Nu zullen we een lus uitvoeren om de opdrachtregelargumenten af te drukken. In dit voorbeeld kunt u zoveel argumenten invoeren als u wilt.
Stap 1 Maak een script lus.pl in uw systeem.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Stap 2 Voer het script uit in uw console als perl loop.pl a b c d e f g h
Kijk naar de bovenstaande uitvoer. Deze toont ook het totale aantal argumenten dat op de opdrachtregel is doorgegeven. Hier hebben we 8 argumenten doorgegeven.
Perl Getopt::Lang
De eenvoudige opdrachtregelopties worden uitgevoerd met de optie ?s. Complexe opdrachtregelopties worden uitgevoerd met behulp van Getopt::Std en Getopt::Long.
Getopt staat voor GetOptions . Het verwerkt de inhoud van @ARGV op basis van de configuratie die we eraan geven. Het retourneert de waarde True of False op basis van de verwerking.
Voorbeeld:
In dit voorbeeld halen we de leeftijd van de gebruiker op via de opdrachtregel.
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'; }
We hebben een variabele gedeclareerd $x waarin de ingevoegde waarde wordt opgeslagen --van van de standaardconsole. De vanaf=s declareert de opdrachtregelparameter aangeroepen --van met een touwtje erachter. Het wordt verder toegewezen aan de variabele $x. De terugslag () betekent dat we een verwijzing naar de variabele doorgeven.
Dit script schakelt over naar de part alleen wanneer we dit script uitvoeren door iets door te geven dat lijkt op een parameternaam en begint met a (-) maar wordt in dit script niet gedeclareerd.
Nu gaan we dit programma uitvoeren.
Uitgang:
Kijk naar de uitvoer. Nadat we de leeftijd op de console hadden ingevoerd, kregen we de bovenstaande uitvoer.