logo

Argumenty příkazového řádku Perlu

Argumenty příkazového řádku jsou odesílány do programu v Perlu stejným způsobem jako v jakémkoli jiném jazyce. Pole @ARGV obsahuje argument příkazového řádku. Není potřeba používat proměnné, i když použijete 'use strict'. Ve výchozím nastavení tato proměnná vždy existuje a hodnoty z příkazového řádku jsou automaticky umístěny do této proměnné. Chcete-li získat přístup k argumentům příkazového řádku vašeho skriptu, stačí číst z pole @ARGV.

Perl umožňuje použít pole @ARGV jako názvy souborů pomocí . $ARGV obsahuje název aktuálního souboru při čtení z .

@ARGV prvky pole

Pole @ARGV funguje stejně jako normální pole. Jeho první argument bude $ARGV[0], druhý $ARGV[1] a tak dále.


Příklad argumentu příkazového řádku Perlu

Podívejme se na jednoduchý příklad tisku argumentů příkazového řádku. V tomto příkladu vytiskneme uvítací zprávu se jménem uživatele jako argumentem z příkazového řádku. Potřebujeme dva argumenty příkazového řádku jako jméno a příjmení uživatele.

Krok 1 Vytvořte skript vítejte.pl ve vašem systému.

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

Ve výše uvedeném skriptu nejprve zkontroluje, zda jsou zadány dva argumenty příkazového řádku nebo ne. Pokud ne, zobrazí se chybná chyba zadání. A pokud ano, zpracuje tyto argumenty jako $ARGV[0] a $ARGV[1].

Krok 2 Spusťte skript ve vaší konzoli jako perl welcome.pl Christian Grey

Poznámka: Před zadáním tohoto příkazu se ujistěte, že jste v adresáři obsahujícím váš skript welcome.pl

Perl Argumenty příkazového řádku 1

Toto je výstup, který získáte ve své konzoli.

Krok 2 Spusťte skript ve vaší konzoli jako perl welcome.pl Christian

Zde předáváme pouze jeden argument z příkazového řádku.

Perl Argumenty příkazového řádku 2

Ve výstupu můžete vidět chybnou vstupní zprávu pro předání jednoho argumentu.


Příklad argumentů příkazového řádku Perlu pomocí Loop

Nyní spustíme cyklus pro tisk argumentů příkazového řádku. V tomto příkladu můžete zadat tolik argumentů, kolik chcete.

Krok 1 Vytvořte skript loop.pl ve vašem systému.

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

Krok 2 Spusťte skript ve vaší konzoli jako perl loop.pl a b c d e f g h

Perl Argumenty příkazového řádku 3

Podívejte se na výstup výše, zobrazuje také celkový počet argumentů předávaných na příkazovém řádku. Zde jsme předali 8 argumentů.


Perl Getopt::Dlouhý

Jednoduché volby příkazového řádku se provádějí pomocí volby ?s. Složité možnosti příkazového řádku se provádějí pomocí Getopt::Std a Getopt::Long.

Getopt znamená GetOptions . Zpracovává obsah @ARGV na základě konfigurace, kterou mu zadáme. Vrací hodnotu true nebo false na základě zpracování.

Příklad:

V tomto příkladu dobře získáme věk uživatele z příkazového řádku.

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

Deklarovali jsme proměnnou x $ do kterého se uloží vložená hodnota --z ze standardní konzole. The od=s deklaruje volaný parametr příkazového řádku --z s provázkem za ním. Dále se mapuje na proměnnou $x. Zpětné lomítko () znamená, že předáváme odkaz na proměnnou.

Tento skript se přepne na a část pouze tehdy, když budeme tento skript spouštět předáním něčeho, co vypadá jako název parametru a začíná na a (-) ale není deklarován v tomto skriptu.

Nyní spustíme tento program.

Výstup:

Perl Argumenty příkazového řádku 4

Podívejte se na výstup, po zadání věku na konzoli jsme dostali výše uvedený výstup.