Аргументи командного рядка надсилаються програмі на Perl так само, як і в будь-якій іншій мові. Масив @ARGV містить аргумент командного рядка. Немає необхідності використовувати змінні, навіть якщо ви використовуєте 'use strict'. За замовчуванням ця змінна існує завжди, і значення з командного рядка автоматично розміщуються всередині цієї змінної. Щоб отримати доступ до аргументів командного рядка вашого сценарію, вам потрібно просто прочитати масив @ARGV.
Perl дозволяє використовувати масив @ARGV як імена файлів за допомогою . $ARGV містить назву поточного файлу під час читання з .
Елементи масиву @ARGV
Масив @ARGV працює так само, як і звичайний масив. Його першим аргументом буде $ARGV[0], другим $ARGV[1] і так далі.
Приклад аргументу командного рядка Perl
Давайте розглянемо простий приклад друку аргументів командного рядка. У цьому прикладі ми надрукуємо вітальне повідомлення з іменем користувача як аргументом із командного рядка. Нам потрібні два аргументи командного рядка як ім’я та прізвище користувача.
Крок 1 Створіть сценарій Welcome.pl у вашій системі.
#!/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. ';
У наведеному вище сценарії спочатку перевіряється, чи надано два аргументи командного рядка. Якщо ні, це видасть помилку неправильного введення. І якщо так, він обробить ці аргументи як $ARGV[0] і $ARGV[1] відповідно.
Крок 2 Запустіть сценарій у консолі як perl welcome.pl Крістіан Грей
Примітка: перш ніж надавати цю команду, переконайтеся, що ви перебуваєте в каталозі, що містить ваш сценарій welcome.pl
Це результат, який ви отримаєте на своїй консолі.
Крок 2 Запустіть сценарій у консолі як perl welcome.pl Крістіан
Тут ми передаємо лише один аргумент із командного рядка.
У вихідних даних ви можете побачити повідомлення про неправильне введення для передачі одного аргументу.
Приклад аргументів командного рядка Perl із використанням циклу
Тепер ми запустимо цикл для друку аргументів командного рядка. У цьому прикладі ви можете ввести скільки завгодно аргументів.
Крок 1 Створіть сценарій loop.pl у вашій системі.
#!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args '; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument] '; }
Крок 2 Запустіть сценарій у консолі як perl loop.pl a b c d e f g h
Подивіться на результат вище, він також відображає загальну кількість аргументів, переданих у командному рядку. Тут ми передали 8 аргументів.
Perl Getopt::Long
Прості параметри командного рядка виконуються за допомогою параметра ?s. Складні параметри командного рядка виконуються за допомогою Getopt::Std і Getopt::Long.
Getopt означає GetOptions . Він обробляє вміст @ARGV на основі наданої нами конфігурації. Він повертає значення true або false на основі обробки.
приклад:
У цьому прикладі ми добре отримуємо вік користувача з командного рядка.
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'; }
Ми оголосили змінну $x який буде зберігати значення, вставлене в --від зі стандартної консолі. The від=s оголошує викликаний параметр командного рядка --від із рядком після нього. Далі він відображається на змінній $x. Зворотний слеш () означає, що ми передаємо посилання на змінну.
Цей сценарій переключиться на в лише тоді, коли ми будемо запускати цей сценарій, передаючи щось, що виглядає як ім’я параметра та починається з a (-) але не оголошено в цьому сценарії.
Зараз ми запустимо цю програму.
Вихід:
Подивіться на результат: після введення віку на консолі ми отримали наведений вище результат.