私はperlスクリプトで次のコードを持っている:PerlのGetoptの::ロング関連の質問 - 相互排他コマンドライン引数
my $directory; my @files; my $help; my $man; my $verbose; undef $directory; undef @files; undef $help; undef $man; undef $verbose; GetOptions( "dir=s" => \$directory, # optional variable with default value (false) "files=s" => \@files, # optional variable that allows comma-separated # list of file names as well as multiple # occurrenceces of this option. "help|?" => \$help, # optional variable with default value (false) "man" => \$man, # optional variable with default value (false) "verbose" => \$verbose # optional variable with default value (false) ); if (@files) { @files = split(/,/,join(',', @files)); }
相互に排他的なコマンドライン引数を処理するための最良の方法は何ですか?私のスクリプトでは、ユーザーには "--dir"または "--files"コマンドライン引数だけを入力し、両方を入力しないでください。これを行うにはGetoptを設定する必要はありますか?
ありがとうございました。
これらのundefは不要です。変数はundef値で始まります(配列やハッシュの場合は空です)。 –