14
GetOptions(
    "r|repo=s"       =>   \$repo,
    "R|list-repos"   =>   \$list,
);

このスクリプトを-r qweオプションで呼び出すと$list、1 に更新されますが、これは期待したものではありません。

GetOpt で大文字と小文字を区別するにはどうすればよいですか?

4

2 に答える 2

30
use Getopt::Long qw(:config no_ignore_case);
于 2011-03-23T16:20:04.260 に答える
5

また、バンドルを有効にすると修正されます。

use Getopt::Long  qw(:config bundling);

ドキュメントから:

バンドル用に構成されている場合、単一文字のオプションでは大文字と小文字が区別され、長いオプションでは大文字と小文字が区別されません。1文字のオプションで大文字と小文字を区別しないようにするには、次を使用します。

Getopt::Long::Configure ("bundling", "ignorecase_always");

そして、著者は次のように付け加えます。

言うまでもなく、バンドルは非常に混乱を招く可能性があります。

于 2012-06-20T20:29:01.880 に答える