我有一个带有可能的命令行参数的字符串(使用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 );
有没有好/更好的方法?
解决方法
查看
man page for Getopt::Long中的
parsing options from an arbitrary string部分,我认为它完全符合您的要求.