加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Perl的Getopt :: Long,如何防止模块尝试匹配不明确的选项名

发布时间:2020-12-15 21:48:20 所属栏目:大数据 来源:网络整理
导读:我使用 Getopt::Long 模块来处理命令行参数. 这个模块的典型行为是我们可以传递-f而不是变量–file的全名.同时,如果我有另一个命令行变量–find,如果我在命令提示符下只提供-f,它将返回错误: Option f is ambiguous (file,find). 我想知道我们怎样才能抑制
我使用 Getopt::Long模块来处理命令行参数.

这个模块的典型行为是我们可以传递-f而不是变量–file的全名.同时,如果我有另一个命令行变量–find,如果我在命令提示符下只提供-f,它将返回错误:

Option f is ambiguous (file,find).

我想知道我们怎样才能抑制这种模棱两可的用法呢?

提前致谢.

解决方法

看看 Getopt::Long文档:

auto_abbrev

Allow option names to be abbreviated to uniqueness. Default is enabled
unless environment variable POSIXLY_CORRECT has been set,in which
case auto_abbrev is disabled.

例:

use strict;
use warnings;
use Getopt::Long qw(:config no_auto_abbrev);

my ( $file,$fish );

GetOptions( "file=s" => $file,"fish=s" => $fish );

测试:

$perl test.pl -fi 24
Unknown option: fi

$perl test.pl -fis 24
Unknown option: fis

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读