我有一个包含可能的命令行参数的字符串(使用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
);
有什么好/更好的方法吗?
最佳答案
请查看parsing options from an arbitrary string中的man page for Getopt::Long部分,我认为它确实满足您的需求。