1

ユーザーからいくつかの引数を取得する必要があるスクリプトを作成しましたが、スクリプトの引数を読み込もうとしたときに問題が発生しました。

スクリプトは-type、1つのファイルタイプで関数を実行するためのを取得すること-allも、すべてのファイルタイプで実行するためにフラグを取得することもできます。

my $opt = GetOptions (
    'help|h' => \$help,
    'type=s' => \$type,
    'all'    => \$all,
);

ユーザーが実行できるすべての間違ったオプションについて考えようとしていますが、ユーザーが実行しているときに、モジュールが文字列としてをmyscript.pl -type -all読み取ることがわかりました。-all-type

そのようなことを避けるためのエレガントな方法はありますか?

4

2 に答える 2

4

-typeまたは のいずれかを許可します-allが、両方を許可することはできません。-allまたは、オプションを削除し、-typeその後に が続く場合はall、現在処理しようとしているように処理し-allます。

my $opt = GetOptions (
    'help|h' => \$help,
    'type=s' => \$type,
    'all'    => sub { $type = "all"; },
);
于 2012-07-01T13:08:31.000 に答える
2

'type:s'の代わりに使用する'type=s'と、-type の値はオプションになります。エレガント?わかりませんが、それはパーリッシュです。

于 2012-07-01T13:11:56.177 に答える