logo

Argumenty wiersza poleceń Perla

Argumenty wiersza poleceń są wysyłane do programu w języku Perl w taki sam sposób, jak w każdym innym języku. Tablica @ARGV przechowuje argument wiersza poleceń. Nie ma potrzeby używania zmiennych, nawet jeśli użyjesz opcji „użyj ściśle”. Domyślnie ta zmienna zawsze istnieje, a wartości z wiersza poleceń są automatycznie umieszczane wewnątrz tej zmiennej. Aby uzyskać dostęp do argumentów wiersza poleceń skryptu, wystarczy przeczytać tablicę @ARGV.

Perl pozwala używać tablicy @ARGV jako nazw plików, używając . $ARGV zawiera nazwę bieżącego pliku podczas odczytu z .

Elementy tablicy @ARGV

Tablica @ARGV działa tak samo jak zwykła tablica. Jego pierwszym argumentem będzie $ARGV[0], drugim $ARGV[1] i tak dalej.


Przykład argumentu wiersza poleceń Perla

Zobaczmy prosty przykład drukowania argumentów wiersza poleceń. W tym przykładzie wydrukujemy wiadomość powitalną z nazwą użytkownika jako argumentem z wiersza poleceń. Potrzebujemy dwóch argumentów wiersza poleceń jako imienia i nazwiska użytkownika.

Krok 1 Utwórz skrypt witamy.pl w Twoim systemie.

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

W powyższym skrypcie najpierw sprawdzi, czy podano dwa argumenty wiersza poleceń, czy nie. Jeśli nie, wyświetli się błąd wpisu. A jeśli tak, przetworzy te argumenty odpowiednio jako $ARGV[0] i $ARGV[1].

Krok 2 Uruchom skrypt w konsoli jako perl Welcome.pl Christian Grey

Uwaga: Przed wydaniem tej komendy upewnij się, że znajdujesz się w katalogu zawierającym Twój skrypt Welcome.pl

Argumenty wiersza poleceń Perla 1

To jest wynik, który otrzymasz w konsoli.

Krok 2 Uruchom skrypt w konsoli jako perl Welcome.pl Chrześcijanin

Tutaj przekazujemy tylko jeden argument z linii poleceń.

Argumenty wiersza poleceń Perla 2

W wynikach widać błędny komunikat wejściowy dotyczący przekazania jednego argumentu.


Przykład argumentów wiersza poleceń Perla przy użyciu pętli

Teraz uruchomimy pętlę, aby wydrukować argumenty wiersza poleceń. W tym przykładzie możesz wprowadzić dowolną liczbę argumentów.

Krok 1 Utwórz skrypt pętla.pl w Twoim systemie.

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

Krok 2 Uruchom skrypt w konsoli jako Perl Loop.pl a b c d e f g h

Argumenty wiersza poleceń Perla 3

Spójrz na powyższe dane wyjściowe, wyświetlają one również całkowitą liczbę argumentów przekazanych w wierszu poleceń. Tutaj przekazaliśmy 8 argumentów.


Perl Getopt::Długi

Proste opcje wiersza poleceń są wykonywane przy użyciu opcji ?s. Złożone opcje wiersza poleceń są wykonywane przy użyciu Getopt::Std i Getopt::Long.

Getopt oznacza PobierzOpcje . Przetwarza zawartość @ARGV w oparciu o konfigurację, którą mu nadajemy. Zwraca wartość true lub false w zależności od przetwarzania.

Przykład:

W tym przykładzie wiek użytkownika uzyskujemy z wiersza poleceń.

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

Zadeklarowaliśmy zmienną $x w którym będzie przechowywana wartość wstawiona --z ze standardowej konsoli. The od=s deklaruje parametr wiersza poleceń o nazwie --z z ciągiem po nim. Jest on dalej mapowany na zmienną $x. Ukośnik odwrotny () oznacza, że ​​przekazujemy referencję do zmiennej.

Ten skrypt zostanie przełączony na the część tylko wtedy, gdy uruchomimy ten skrypt, przekazując coś, co wygląda jak nazwa parametru i zaczyna się od a (-) ale nie jest zadeklarowany w tym skrypcie.

Teraz uruchomimy ten program.

Wyjście:

Argumenty wiersza poleceń Perla 4

Spójrz na wynik, po wprowadzeniu wieku na konsoli otrzymaliśmy powyższy wynik.