Аргументите на командния ред се изпращат към програма на Perl по същия начин, както във всеки друг език. Масивът @ARGV съдържа аргумента на командния ред. Няма нужда да използвате променливи, дори ако използвате 'use strict'. По подразбиране тази променлива винаги съществува и стойностите от командния ред автоматично се поставят в нея. За да получите достъп до аргументите на командния ред на вашия скрипт, трябва само да прочетете от @ARGV масив.
Perl позволява използването на масив @ARGV като имена на файлове чрез използване на . $ARGV съдържа името на текущия файл при четене от .
@ARGV масив елементи
Масивът @ARGV работи по същия начин като нормален масив. Първият му аргумент ще бъде $ARGV[0], вторият $ARGV[1] и т.н.
Пример за аргумент от командния ред на Perl
Нека видим прост пример за отпечатване на аргументи от командния ред. В този пример ще отпечатаме поздравително съобщение с името на потребителя като аргумент от командния ред. Имаме нужда от два аргумента на командния ред като име и фамилия на потребителя.
Етап 1 Създайте скрипт добре дошли.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 цикъл.pl a b c d e f g h
Погледнете изхода по-горе, той също показва общия брой аргументи, предадени на командния ред. Тук сме предали 8 аргумента.
Perl Getopt::Long
Простите опции на командния ред се извършват с помощта на опцията ?s. Сложните опции на командния ред се правят с помощта на Getopt::Std и Getopt::Long.
Getopt означава GetOptions . Той обработва съдържанието на @ARGV въз основа на конфигурацията, която му даваме. Връща истинска или невярна стойност въз основа на обработката.
Пример:
В този пример добре получаваме възрастта на потребителя от командния ред.
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 (-) но не е деклариран в този скрипт.
Сега ще стартираме тази програма.
Изход:
Погледнете изхода, след въвеждане на възраст в конзолата, получихме горния изход.