Subs принимают список скаляров для аргументов. Этот список может быть сгенерирован из любого выражения *, включая массив.
my @options;
if (condition()) { # Dynamic
@options = qw( dir=s force release=s );
} else {
@options = ...;
}
GetOptions(\%options, @optons);
* & mdash; Прототипы могут изменить то, какие выражения разрешены и как выражение оценивается.