我使用Getopt::Long
来解析传递给我的程序的选项。我想格式化这些选项(修改后)传递到另一个程序。
Getopt可以做到这一点吗?或者可能有其他模块可以为我做到这一点?
示例:
use Getopt::Long qw(:config no_ignore_case );
# set defaults
my %ARG;
$ARG{config} = './default-config.ini';
$ARG{debug} = 0;
# process command line options
GetOptions( \%ARG, 'config|c=s', 'debug!');
# modify them as necessary
if ( if $ARG{debug} ) {
$ARG{config} = './debug-config.ini' ;
$ARG{debug} = 0;
$ARG{verbal} = 1;
}
# format options string to pass to other command
# expecting something like this in options string:
# '-config=./debug-config.ini --verbal'
$options_string = some_method_or_module_to_format( %ARG, 'config=s', 'verbal' );
`some-other-script-1.pl $options_string`;
`some-other-script-2.pl $options_string`;
`some-other-script-3.pl $options_string`;
2条答案
按热度按时间fhg3lkii1#
不,Getopt::Long只是“解析来自
@ARGV
的命令行,识别并删除指定的选项”。它不对选项进行任何格式设置。如果你想保留传递给程序的所有选项,你可以在调用
GetOptions
之前复制原始数组:kwvwclae2#
指示一个模块如何做这件事所花费的时间与指示Perl如何做这件事所花费的时间一样长。不需要这样的模块。