Kommandoradsargument skickas till ett Perl-program på samma sätt som på alla andra språk. Arrayen @ARGV innehåller kommandoradsargumentet. Det finns inget behov av att använda variabler även om du använder 'använd strikt'. Som standard finns denna variabel alltid och värden från kommandoraden placeras automatiskt inuti denna variabel. För att komma åt ditt skripts kommandoradsargument behöver du bara läsa från arrayen @ARGV.
Perl tillåter användning av @ARGV-array som filnamn genom att använda . $ARGV innehåller namnet på den aktuella filen när du läser från .
@ARGV arrayelement
@ARGV-arrayen fungerar på samma sätt som en normal array. Dess första argument kommer att vara $ARGV[0], andra $ARGV[1] och så vidare.
Perl kommandoradsargumentexempel
Låt oss se ett enkelt exempel för att skriva ut kommandoradsargument. I det här exemplet kommer vi att skriva ut ett välkomstmeddelande med användarens namn som argument från kommandoraden. Vi behöver två kommandoradsargument som användarens för- och efternamn.
Steg 1 Skapa ett manus welcome.pl i ditt system.
#!/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 ovan kommer det först att kontrollera om två kommandoradsargument tillhandahålls eller inte. Om inte, kommer det att ge fel inmatningsfel. Och om ja, kommer den att behandla dessa argument som $ARGV[0] respektive $ARGV[1].
Steg 2 Kör skriptet i din konsol som perl welcome.pl Christian Grey
Obs: Innan du ger det här kommandot, se till att du är i katalogen som innehåller ditt skript welcome.pl
Det här är utdata du kommer att få i din konsol.
Steg 2 Kör skriptet i din konsol som perl welcome.pl Christian
Här skickar vi bara ett argument från kommandoraden.
I utgången kan du se fel inmatningsmeddelande för att skicka ett argument.
Perl Kommandoradsargument Exempel med loop
Nu kör vi en loop för att skriva ut kommandoradsargumenten. I det här exemplet kan du ange hur många argument du vill.
Steg 1 Skapa ett manus loop.pl i ditt system.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Steg 2 Kör skriptet i din konsol som perl loop.pl a b c d e f g h
Titta på utgången ovan, den visar också totala argument som skickas på kommandoraden. Här har vi passerat 8 argument.
Perl Getopt::Lång
De enkla kommandoradsalternativen görs med ?s-alternativet. Komplexa kommandoradsalternativ görs med Getopt::Std och Getopt::Long.
Getopt står för GetOptions . Den bearbetar innehållet i @ARGV baserat på den konfiguration vi ger den. Det returnerar sant eller falskt värde baserat på bearbetningen.
Exempel:
I det här exemplet får vi väl användarens ålder från kommandoraden.
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 deklarerat en variabel $x som kommer att lagra värde som infogats i --från från standardkonsolen. De från=s deklarerar kommandoradsparameter anropad --från med ett snöre efter. Den mappas vidare till variabeln $x. Omvänd snedstreck () betyder att vi skickar en referens till variabeln.
Detta skript kommer att byta till de del endast när vi kommer att köra det här skriptet genom att skicka något som ser ut som ett parameternamn och börjar med a (-) men deklareras inte i detta skript.
Nu kör vi det här programmet.
Produktion:
Titta på utgången, efter att ha angett ålder på konsolen fick vi ovanstående utgång.