-1

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`;
4

2 に答える 2

1

いいえ、Getopt::Longは単に「からコマンド ラインを解析し、@ARGV指定されたオプションを認識して削除する」だけです。オプションのフォーマットは行いません。

プログラムに渡されたすべてのオプションを保持したい場合は、呼び出す前に元の配列のコピーを作成できますGetOptions

my @opts = @ARGV;
GetOptions( ... )
于 2014-03-31T12:46:58.623 に答える