У меня есть строка с возможными аргументами командной строки (с использованием программы Read-Eval-Print-Loop), и я хочу, чтобы она передавалась как аргументы командной строки при передаче в Getopt :: Long.
Для уточнения:
У меня есть строка
$str = '--infile /tmp/infile_location --outfile /tmp/outfile'
Я хочу, чтобы он был проанализирован GetOptions, чтобы мне было проще добавлять новые параметры.
Один из обходных путей, который я мог бы придумать, - разделить строку на пустое пространство и заменить @ARGV новым массивом, а затем вызвать GetOptions. что-то вроде ...
my @arg_arr = split (/\s/, $input_line);
# This is done so that GetOptions reads these new arguments
@ARGV = @arg_arr;
print "ARGV is : @ARGV\n";
GetOptions (
'infile=s' => \$infile,
'outfile=s' => \$outfile
);
Есть ли хороший / лучший способ?