У меня есть строка с возможными аргументами командной строки (с использованием программы 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
);
Есть ли хороший/лучший способ?