`

Perl 模块 Getopt::Std 和 Getopt::Long

    博客分类:
  • Perl
 
阅读更多
转自:
http://www.cnblogs.com/zjking99/articles/2117258.html



示例程序:

getopt.pl;

#!/usr/bin/perl -w
#use strict;
use Getopt::Std;
use vars qw($opt_a $opt_b $opt_c);
getopts('a:b:c');
print "opt_a =>;$opt_a\n" if $opt_a;
print "opt_b =>;$opt_b\n" if $opt_b;
print "opt_c =>;$opt_c\n" if $opt_c;
注释:'a:b:c',a和b后有冒号,表示-a,-b后面要跟参数.c后面没有冒号,表示-c后面不带参数.

而且-a,-b后所跟的参数分别赋给变量$opt_a和$opt_b,对于变量$opt_c,若命令行加了-c,则$opt_c=1,否则为0.

如:
perl getopt.pl -a aa -b bb -c cc

显示:
opt_a =>;aa
opt_b =>;bb
opt_c =>;1

如:
perl getopt.pl -a aa -b bb
opt_a =>;aa
opt_b =>;bb

(因为加了if判断,所以$opt_c没有显示);



上面的例子,用Getopt::Long可以这样实现

getoptions.pl

#!/usr/bin/perl
use Getopt::Long;
use vars qw($opt_a $opt_b $opt_c);
GetOptions("a=s"=>\$opt_a,"b|opt_b:i"=>\$opt_b,"c"=>\$opt_c);
print "opt_a =>;$opt_a\n" if $opt_a;
print "opt_b =>;$opt_b\n" if $opt_b;
print "opt_c =>;$opt_c\n" if $opt_c;

a=s表示可以用-a aa的形式,即变量-a 类型是字符串
b|opt_b:i表示可以用-b或者-opt_b来取得变量,类型为整型
c表示如果有-c的参数值则$opt_c等于1,否则等于0

其中
s表示字符串,i表整型,f表示浮点型
=表示要有参数值或者没有这个参数如:perl getoptions.pl -a aa -b bb或者perl getoptions.pl -b bb
:表示可有参数值也可以没有参数值

如:
perl getoptions.pl -a aa -b 2 -c cc

opt_a =>;aa
opt_b =>;2
opt_c =>;1
分享到:
评论

相关推荐

    perl-Getopt-Long-2.40-3.el7.noarch.rpm

    离线安装包,亲测可用

    perl-Getopt-Long-2.50-4.el8.noarch(1).rpm

    离线安装包,亲测可用

    getopt:Erlang模块使用GNU getopt语法解析命令行参数

    要在项目中使用getopt,您可以通过以下方式将其作为依赖项添加到rebar.config文件中: { deps , [ { getopt , " 1.0.2 " } ]}用法getopt模块提供四个功能: parse ([{ Name , Short , Long , ArgSpec , Help }], ...

    getopt源码下载及getopt_long源码下载

    通过阅读和分析提供的代码,可以更深入地了解`getopt`和`getopt_long`的工作方式,同时也可以学习如何在自己的程序中使用它们来优雅地处理命令行参数。这不仅有助于提高代码的可读性和可维护性,还能使程序更加符合...

    getopt.h getopt getopt_long

    win10 vs2019下的 getopt及getopt_long getopt/getopt_long函数是GNU C中的函数

    centos7 perl rpm依赖包

    装mysql时提示少perl,安装perl需要依赖包。已包含下面所有包, 版本号匹配。 [Linux]centOS7下RPM...perl-Getopt-Long-2.40-2.el7.noarch 4:perl-5.16.3-286.el7.x86_64 kernel-devel-3.10.0-327.10.1.el7.x86_64

    bibfetch:用于获取 BibTeX 条目的脚本(来自 Google Scholar 和 DBLP)

    bibfetch.{pl,el} 这些脚本允许在Google Scholar和上搜索BibTeX条目,并...random-perl ) Pod::Usage (包含在perl-modules ) Getopt::Long ( libgetargs-long-perl ) List::Util (在perl-base ) bibfetch.el需要 E

    getopt.h getopt.c getopt getopt_long 字符串 命令行

    `getopt` 是一个库函数,用于解析程序启动时的命令行选项,而 `getopt_long` 是 `getopt` 的扩展版本,增加了对长选项的支持,使得命令行参数的使用更加灵活和易读。 `getopt.h` 是头文件,包含了 `getopt` 函数的...

    getopt:简单的getopt实现

    getopt支持短(-s)和长(--long)选项,标志和帮助生成。 例子: 这是一个显示大多数功能的简单示例: # include # include < getopt> int verbose = 0 ; // verbose flag static const getopt_option_t option...

    getopt.h getopt.c getopt_long 文件和函数说明

    `getopt 函数说明.doc` 文件应该包含了 `getopt` 和 `getopt_long` 函数的详细使用说明,包括它们的原型、参数、返回值以及如何处理错误情况等。通常,这份文档会指导开发者如何初始化选项列表,如何处理返回值,...

    perl-tools:各种perl工具

    在"perl-tools-master"中,可能包含了一些常用的Perl模块,如`Text::Diff`用于比较文本文件,`Data::Dumper`用于调试时打印数据结构,或`Getopt::Long`用于处理命令行选项。 3. **Perl调试器**:Perl的调试工具,如...

    crystal-getopt:从python移植getopt函数

    【标题】:“水晶-getopt:Python getopt函数在Crystal语言中的实现” 【正文】: 水晶-getopt是基于Crystal编程语言的一个库,它为Crystal开发者提供了一种处理命令行参数的便捷方式,灵感来源于Python中的getopt...

    Getopt-Alt:Getopt-Alt 的只读发布历史

    该模块提供了一个与 Getopt::Long 类似的接口,带有一些额外的扩展和语法现代化。 安装 要安装此模块,请运行以下命令: perl Build.PL ./Build ./Build test ./Build install SUPPORT AND DOCUMENTATION 安装后,您...

    windows下的getopt/getopt_long等函数,vs2010实测可用

    GNU libc提供了getopt和getopt_long用于解析命令行参数,使用方便,但是windows环境没有提供。故将GNU libc提供的源码稍加修改,整理出了windows下可用的getopt和getopt_long。

    getopt和getopt_long在Linux操作系统下解析命令

    `getopt`和`getopt_long`函数是C语言标准库中用于解析命令行参数的两个重要工具,它们能帮助我们方便地获取和处理用户在执行程序时传递的参数。 `getopt`函数是最基础的命令行参数解析函数,它按照一定的顺序(通常...

    getopt-mini:又一个 getopt 模块,轻巧、快速、笨拙、无规格

    名称Getopt::Mini - 又一个 Getopt 模块版本版本 0.01用法规则: * -<char> does not consume barewords (ie. -f, -h, ...)* -<str> * --<str> <bareword> will eat up the next bare word (-type f,

    go-getopt:golang 的 getopt

    在 Go 语言中,标准库 `flag` 包提供了基本的命令行参数处理功能,但`go-getopt` 提供了更灵活的选项定义和解析方式,允许开发者自定义选项前缀、短选项和长选项,并且可以更方便地处理组合选项。 **用法** 在 `go...

    centos perl rpm静态安装及依赖(包含所有依赖的安装脚本)

    perl v5.16.3 centos7 rpm安装依赖包 解压后 tar -zxvf perl-5.16.3.tar.gz 包括27个rpm文件和一个安装脚本,直接执行perl_install.sh既可安装

    java-getopt-1.0.13.jar

    GNU GetOpt的Java端口 gnu.getopt/java-getopt/1.0.13/java-getopt-1.0.13.jar

    pure-getopt:在纯Bash中实现的GNU getopt的直接替代

    纯Bash实现的GNU getopt是Linux和Unix系统中命令行参数解析的一种解决方案。在Linux环境中,getopt函数通常用于解析命令行选项,它遵循POSIX标准,并在C语言中实现。然而,`pure-getopt`项目提供了一个完全用Bash...

Global site tag (gtag.js) - Google Analytics