Perl 模块 Getopt::Std 和 Getopt::Long
模块 long Perl std
2023-09-27 14:21:54 时间
示例程序:
getopt.pl;
1
2
3
4
5
6
7
8
|
#!/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可以这样实现
上面的例子,用Getopt::Long可以这样实现
getoptions.pl
1
2
3
4
5
6
7
|
#!/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
相关文章
- oled模块的驱动芯片和pcb图
- webpack-Module Resolution(模块解析)
- Python tarfile模块(压缩解压tar)
- Simulink 环境基础知识(九)--指定模块属性
- SQLite 解决:Could not load file or assembly 'System.Data.SQLite ... 试图加载格式不正确的程序/or one of its dependencies. 找不到指定的模块。
- Python 网络请求模块 urllib 、requests
- ESP-12F模块转接板测试版调试说明,下载MicroPython程序。ESP8266-12F
- Nginx PageSpeed模块配置和使用
- 3-页面结构与模块划分
- 无线音频收发模块研发小记
- 如何调用模块的变量名?
- 「基于Python技术的智慧中医商业项目」问诊模块系统配置
- 如何设计App登录模块?
- cloudpickle —— Python分布式序列化的专用模块
- baselines算法库logger.py模块分析
- baselines算法库common/vec_env/dummy_vec_env.py模块分析
- pytorch 第三方模块 GraphNAS 安装成功记录
- jeesite应用实战(数据增删改查),认真读完后10分钟就能开发一个模块