perl的Getopt::Long和pod::usage ?
来源:
http://www.cnblogs.com/itech/archive/2012/08/07/2627267.html
代码:
需要显式地定义变量且初始化。例如optionX。
如果没有定义变量且显式初始化,且没有在命令行指定选项,则选项对应的变量将为未定义。
#!/bin/perl-5.8.3/bin/perl$
use warnings;
use strict; use Data::Dumper;
use Getopt::Long;
use Pod::Usage; our $g_opts;
our $optionX=''; #if not defined in command line, it will be empty string
sub parse_opts{
my $result = GetOptions(
"optionA=s" => \$g_opts->{'optionA'},#string
"optionB=s" => \$g_opts->{'optionB'},#string
"optionC=i" => \$g_opts->{'optionC'},#integer
"optionD=f" => \$g_opts->{'optionD'},#float
"optionX=f" => \$optionX,
"optionY=f" => \$optionY,
"verbose" => \$g_opts->{'verbose'},#flag
"quiet" => sub { $g_opts->{'verbose'} = },
"help|?" => \$g_opts->{'help'}
);
if(!($g_opts->{'optionA'})){
&pod2usage( -verbose => );#exit status will be 1
}
if($g_opts->{'help'}){
&pod2usage( -verbose => );#exit status will be 1
}
} &parse_opts();
print("\n$optionX\n");
print($optionY); #if not defined in command line, it will be undefined
print($g_opts->{"optionB"}); foreach my $key (keys %{$g_opts}){
if(!$g_opts->{$key}) {next;}
print($key . "=" . $g_opts->{$key} . "\n");
}
exit(); __END__ =head1 NAME
sample - Using Getopt::Long and Pod::Usage
=head1 SYNOPSIS
sample [options] [args ...]
Options: -optionA optionA
-optionB optionB
-optionC optionC
-optionD optionD
-verbose verbose
-quiet noverbose
-help brief help message
=head1 OPTIONS
=over =item B<-help> Print a brief help message and exits. =back
=head1 DESCRIPTION
B<This program> will read the given input file(s) and do something
useful with the contents thereof. =cut
perl的Getopt::Long和pod::usage ?的更多相关文章
- Perl 模块 Getopt::Std 和 Getopt::Long
示例程序: getopt.pl; 1 2 3 4 5 6 7 8 #!/usr/bin/perl -w #use strict; use Getopt::Std; use vars qw($opt_a ...
- MySQL高可用方案MHA的部署和原理
MHA(Master High Availability)是一套相对成熟的MySQL高可用方案,能做到在0~30s内自动完成数据库的故障切换操作,在master服务器不宕机的情况下,基本能保证数据的一 ...
- mysql MHA架构搭建过程
[环境介绍] 系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57 系统 IP 主机名 备注 版本 xx系统 192.168.142. ...
- Orchestrator+Proxysql 实现自动导换+应用透明读写分离
前面一篇博客我介绍了如何通过Orachestrator+脚本实现自动导换. 这一章,我来演示一下如何通过Orchestrator+Proxysql 实现自动导换+应用透明读写分离 总体架构 可选架构1 ...
- [Perl] Getopt 函数来接收用户参数的使用
我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参 ...
- python module getopt usage
import getopt import sys def usage(): print 'this is a usage.' def main(): try: print sys.argv #sys. ...
- Perl:写POD文档
官方手册:https://perldoc.perl.org/perlpod.html POD文档是perl的man文档,可以用perldoc输出,也可以直接用man输出.在开始下面的文章之前,请先粗略 ...
- awk,perl,python的命令行参数处理
Python,Perl,Bash命令行参数 Part I 日常经常性的和Perl,Python,Bash打交道,但是又经常性的搞混他们之间,在命令行上的特殊性和index的区别,Python真的是人性 ...
- perl 里面如何写出阅读友好的代码提示
在我们使用别人写好的程序时,经常会使用-h 之类的东西查看一下简单的帮助手册或者说明信息: 对于perl 语言而言,写起来简单,经常随手一写,解决了当时的问题,但是过几天去看,你都不知道这个脚本该怎么 ...
随机推荐
- Effective JavaScript :第六章
1.将undefined看成没有值 产生undefined的情况: ①未赋值的变量的初始值为undefined. var x ; X ; //undefined ②访问对象中不存在的属性也会产生und ...
- 异常处理try-catch-finally笔记
当程序发生异常时,我们期望:返回到一种安全状态,并能够让用户执行一些其他的命令:或者 允许用户保存所有操作的结果,并以适当的方式终止程序. 异常处理机制:程序的执行过程中如果出现异常,会自动生成一个异 ...
- Python学习笔记第一天
Python是一门通用脚本语言,灵活,实用,而不用关心本身的实现逻辑! Python通常在linux下编程,有两种方式!当然,为了使用linux文本编辑,所选模式为 非 交互模式! 交互式:简单,方便 ...
- Java实现压力测试---可输出请求信息、error信息
import java.io.; import java.net.; import java.util.; import java.util.concurrent.; public class Tes ...
- SQL_where条件的优化
原则,多数数据库都是从 左到右的顺序处理条件,把能过滤更多数据的条件放在前面,过滤少的条件放后面 SQL1: select * from employee where sala ...
- Objective-C中的instancetype与id的区别
一.什么是instancetype instancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象.我们都知道未知类型的的对象可以 ...
- Linux CPU 核数检查脚本
#!/bin/bash physicalNumber=0 coreNumber=0 logicalNumber=0 HTNumber=0 logicalNumber=$(grep "proc ...
- 移动端touch事件获取clientX, clientY
目有个交互需要实现手指滑动的交互,pc端使用mousedown,mousemove,mouseup监听实现. 但在ios设备上mousemove是不好监听的,同类的方法是touchstart,touc ...
- python基础(三)--列表、元组、字典
一.列表: 有序序列,支持索引.切片.循环(for,while) 元素可以被修改: 元素可以是任何数据类型(数字,字符串,列表,布尔值...),可以嵌套: ##增 1.append(object) ...
- mysql创建计算列
mysql> create table t(id int auto_increment not null,c1 int,c2 int,c3 int as (c1+c2),primary key( ...