2015-05-21 3 views
0

Я бы хотел, чтобы параметр, где первое значение является обязательным, а второе значение является необязательным.GetOptions Дополнительное 2-ое значение для аргумента

Например,

./foo --arg mandatory optional 

Если я использую =s{2} пользователь вынужден ввести второй вариант.

Я не хочу разрешать n-число значений ... Я хочу указать только два значения, причем второе значение является необязательным.

Является ли данная функция поддерживаемой GetOptions?

ответ

5

Предполагая, что вы используете Getopt::Long модуль, используя =s{1,2} должен это сделать:

use Getopt::Long; 

my @arg; 
GetOptions(
    "arg=s{1,2}" => \@arg, 
); 
1

альтернатива Getopt :: долго использовать Getopt::Std

use strict; 

use Getopt::Std; 

my %opt; 
getopts('a:b:c:;d', \%opt); 

Так -d возможно могут быть использованы для переключения отладки в коде.

двоеточие: после того, как опция означает, что необходимо добавить значение переключателя

Все после запятой; не является обязательным.

Использование: perl myscript.pl -a <value> -b <value> -c <value> [ -d ]