示例程序:

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

Perl 模块 Getopt::Std 和 Getopt::Long的更多相关文章

  1. Linux CPAN Perl 模块安装

    当我们想使用某些Perl模块的时候,很可能会遇到当前系统不存在这个模块的情况,这时我们可以通过使用CPAN来对相应的模块进行获取,下面就介绍一下CPAN的使用方法.首先,我们可以用perl -e 'u ...

  2. Linux下安装与使用本地的perl模块

    转自 http://www.cnblogs.com/xianghang123/archive/2012/08/23/2652806.html Linux下安装与使用本地的perl模块 在使用Linux ...

  3. perl 简单学习,安装perl模块

    检查是否安装了某个perl模块 有多种方式 0.perldoc perlinstall 列出所有的模块及版本号 1. perl -M模块名 -e 1(模块名不加空格) 没有返回值则说明有此模块 2.p ...

  4. linux 查看是否安装perl模块

    这里介绍两种linux中查看perl模块是否安装的方法,一种是对于单体的模块,一种是对于群体的. 单体验证: [root@root ~]# perl -MShell -e "print\&q ...

  5. linux安装perl模块

    查询perl CPAN模块   shell>perl -MCPAN -e shell cpan>install module_name   手动安装perl CPAN模块 从 CPAN(h ...

  6. perl模块安装

    转自: http://www.cnblogs.com/itech/archive/2009/08/10/1542832.html http://www.mike.org.cn/blog/index.p ...

  7. 搭建MHA时 yum 安装perl模块提示 baseurl 错误

    今天在搭建MySQL MHA  安装MHA node所需的perl模块(DBD:mysql)时遇到了一个小的错误,如果思路不对的话,还是产生不少麻烦. 现梳理记录下来. 问题现象 执行的命令 yum ...

  8. Perl模块管理

    Perl模块管理 perl有自带的模块,还有第三方模块.自带的模块是随perl安装而安装好的,第三方模块需要从CPAN(Comprehensive Perl Archive Network)上下载并安 ...

  9. Linux上安装Perl模块的两种方法

    Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装.第一种方法是从CPAN上下载  您需要的模块,手工编译.安装.第二种方法是联上internet,使用一个叫做CPAN的模块自动完 ...

随机推荐

  1. Apache CXF 102 CXF with REST

    前言 续上篇Apache CXF 101,摘抄部分REST概念性知识,以运行实例考察CXF对REST的支持. 目录 1 REST简介 2 工具 3 运行实例 内容 本Spike记录中内容,如无特别指出 ...

  2. textarea元素在加上runat="server"后运行报错解决

    当出现这个报错的时候,在后台引用相应的命名空间,为 using System.Web.UI; using System.Web.UI.HtmlControls;using System.Web.UI. ...

  3. zboot/piggyback.c

    /* *    linux/zBoot/piggyback.c * *    (C) 1993 Hannu Savolainen */ /* *    This program reads the c ...

  4. linux权限管理_ACL权限

    一.什么是ACL权限 ACL是Access Control List(访问控制列表)的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的 ...

  5. google-http-java-client(android学习篇)

    package com.example.android; import java.io.IOException; import java.util.HashMap; import android.ap ...

  6. php文件遍历类:FileBianli.class.php

    <?php class FileBianli{ private $dirname; private $dirsize=0; private $totalsize=0;//当前目录大小 funct ...

  7. ID3算法 决策树的生成(2)

    # coding:utf-8 import matplotlib.pyplot as plt import numpy as np import pylab def createDataSet(): ...

  8. Python字典笔记

    1.字典是Python中=唯一的映射类型.映射类型对象里哈希值(键,key)和只指向的对象(值,value)是一对多的关系,一个字典是可变的,是一个容器类型.字典类型和序列类型(元组,列表)的不同在于 ...

  9. JS页面间传值

    一:JavaScript静态页面值传递之URL篇 能过URL进行传值.把要传递的信息接在URL上. 例子: 参数传出页面Post.htm—>   <input type="tex ...

  10. EntityFramework5.0CodeFirst全面学习

    Code First 约定 借助 CodeFirst,可通过使用 C# 或Visual Basic .NET 类来描述模型.模型的基本形状可通过约定来检测.约定是规则集,用于在使用 Code Firs ...