Perl GetOptions()区分大小写

mat*_*sza 10 perl case-sensitive getopt

GetOptions(
    "r|repo=s"       =>   \$repo,
    "R|list-repos"   =>   \$list,
);
Run Code Online (Sandbox Code Playgroud)

当我用-r qwe选项调用此脚本时,$list更新为1,这不是我所期望的.

如何使GetOpt区分大小写?

小智 25

use Getopt::Long qw(:config no_ignore_case);
Run Code Online (Sandbox Code Playgroud)


小智 5

启用捆绑也可以解决这个问题:

use Getopt::Long  qw(:config bundling);
Run Code Online (Sandbox Code Playgroud)

文档中:

配置为捆绑时,单字符选项区分大小写,而长选项匹配不区分大小写。要使单字符选项也匹配不区分大小写,请使用:

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

作者补充道:

不言而喻,捆绑可能会非常令人困惑。