Perl Getopt, использующий одну и ту же опцию несколько раз

Можно ли в Perl getopts использовать одну и ту же опцию несколько раз, но с разными значениями? Я хочу дать пользователю возможность вводить разные координаты сетки, но использовать одно и то же имя опции, чтобы минимизировать путаницу.

Ex:

my_grid.pl --coords=10,12 --coords=-18,30 --coords=4,-25

Затем сценарий будет выполнять набор действий с этими разными парами. Всегда будет по крайней мере одна пара, но неизвестно, сколько пар от ситуации к ситуации.

Я хотел бы избежать: --coords1= --coords2= --coords3= и так далее. Я все равно не знаю, как справиться с неизвестным количеством пар координат с помощью этого метода 1 и 2 и 3. Я использовал getopts в предыдущих проектах, но у меня более сложные требования/вопросы. Я пытался искать решения/примеры, но, вероятно, использовал неправильные ключевые слова. Спасибо за любую помощь.

стержень


person Rod    schedule 17.08.2014    source источник
comment
Если вы используете GetOpt::Long: search.cpan.org/~jv/Getopt-Long-2.42/lib/Getopt/ Это позволит добавить каждый --coords=... в массив, содержащий их все, который затем можно перебрать.   -  person DavidO    schedule 17.08.2014


Ответы (1)


Как описано в разделе Getopts::Long — Параметры с несколькими значениями:

#!/usr/bin/perl
use strict;
use warnings;

use Getopt::Long;

GetOptions(
    "coords=s" => \my @coords,
);

print "$_\n" for @coords;

Выполняется с помощью:

my_grid.pl --coords=10,12 --coords=-18,30 --coords=4,-25

Выходы:

10,12
-18,30
4,-25
person Miller    schedule 17.08.2014
comment
Геопт длинный. Большое спасибо вам обоим. - person Rod; 17.08.2014