我有一个包含可能的命令行参数的字符串(使用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部分,我认为它确实满足您的需求。

10-06 07:02