国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

在Perl中使用Getopt::Long模塊來接收用戶命令行參數(shù)

2020-06-04 20:31:00
字體:
供稿:網(wǎng)友

我們在linux常常用到一個(gè)程序需要加入?yún)?shù),現(xiàn)在了解一下 perl 中的有關(guān)控制參數(shù)的模塊 Getopt::Long ,比直接使用 @ARGV 的數(shù)組強(qiáng)大多了.我想大家知道在 Linux 中有的參數(shù)有二種形式.

•長參數(shù)  –help
•短參數(shù)   -h
也就是-和–的分別.–表示完整參數(shù).-表示簡化參數(shù).在 Perl 的這個(gè)模塊中也支持這二種方法.
這要介紹的二 Getopt 其實(shí)有二個(gè)模塊,一個(gè)叫 Getopt::Long 一個(gè)叫 Getopt::Std.下面就只介紹 Getopt::Long 了.因?yàn)檫@個(gè)模塊更加強(qiáng)大

Getopt::Long 模塊
初始化 Perl命令行中所接受的參數(shù),簡化了命令行參數(shù)的解析.下面看程序的例子

代碼如下:
#!/usr/bin/perl
use strict;
use Getopt::Long;
use Smart::Comments;

my @libs    = (); 
my %flags   = (); 
my ( $verbose, $all, $more, $diam, $debug, $test, $step);

GetOptions(
        'verbose+'  => /$verbose,
        'more!'     => /$more,
        'debug:i'   => /$debug,
        'lib=s'     => /@libs,
        'flag=s'    => /%flags,
        'test|t'    => /$test,
        'all|everything|universe' => $all,
);

### $verbose
### $more
### $debug
### $test
### @libs;
### %flags

這就是使用的方法,下面是詳細(xì)解釋,注意看 GetOptions 中的 => 前面的部分.下面是詳解

•‘verbose+'  接有 + 的選項(xiàng)不接收變量,后面不需要加內(nèi)容.直接使用就行了,會(huì)在每次出現(xiàn)時(shí)增加一次變量,就是講命行時(shí)在參數(shù)中 -verbose -verbose 出現(xiàn)二次時(shí) verbose 的值就會(huì)變成 2.
•‘more!'        接有 ! 的選項(xiàng)不接收變量(也就是講后面不需要加參數(shù) –more 來使用就行了),只要命令行中出現(xiàn)了這個(gè)參數(shù),就會(huì)默認(rèn)是 1 ,是用來設(shè)置打開和關(guān)掉一個(gè)功能的>.可以在參數(shù)前加 no 變成負(fù)的例如-nomore.
•‘flag=s'        接有 = 的字符串要求接字符串(s)、整數(shù)(i),或者浮點(diǎn)(f)等類型的變量.
•‘debug:i'      接有 : 的選項(xiàng)會(huì)接受缺省為0或者為空字符串的可選變量
•‘test|t'          接有 | 的選項(xiàng)表示可以給 –test 簡寫為 -t.
•‘lib=s'     => @libs    如果相關(guān)聯(lián)的變量是個(gè)數(shù)組, 如這個(gè)地方的 @libs, 那么選項(xiàng)可以多次出現(xiàn), 值可以被推到數(shù)組里.
•‘flag=s'    => %flags  如果相關(guān)聯(lián)的變量是個(gè)散列, 那么就要求一個(gè)鍵=值(key=value)對, 并被插入到散列里.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 寿阳县| 佛山市| 邵阳县| 济阳县| 盈江县| 琼结县| 常熟市| 黄平县| 江华| 富裕县| 承德县| 浪卡子县| 漳平市| 潜江市| 灯塔市| 龙里县| 海南省| 浦东新区| 朝阳市| 清丰县| 漾濞| 依安县| 衡东县| 泾川县| 循化| 玉山县| 青河县| 台山市| 安宁市| 南靖县| 什邡市| 当雄县| 福贡县| 长泰县| 东乡| 陆河县| 元朗区| 双城市| 宁城县| 长乐市| 墨竹工卡县|