bubble的备忘录

本blog主要用于常用资料的备忘、备份、备搜索

【ZZ】perl之Getopt::Long

处理命令行选项是一个很重复的事情,Getopt::Long 把这个过程简单化了。使用这个模块其实只要知道一些常用的用法就行了。

这是文档中的例子:



use Getopt::Long;
my $data = "file.dat";
my $length = 24;
my $verbose;
$result = GetOptions ("length=i" => \$length, # numeric
"file=s" => \$data, # string
"verbose" => \$verbose); # flag


观察一下 GetOptions 函数的参数,可以发现,大致可以把设置分为三个部分:(1)命令行的选项,对应于"length","file","verbose",这样在命令行就可以用 -length 或者 -length 甚至 -l(必须是唯一的) 触发选项了。可以通过使用"|"来设置别名。(2)选项类型,后面接有=的字符串要求接字符串(s)、整数(i),或者浮点(f)等类型的自变量。后面接有:的选项会接受缺省为0或者为空字符串的可选自变量。(3)选项设置的变量。

对于不传递参数的选项,也就是一些开关类型,可以在第一部分后接"!",这表示该选项不接收自变量,但是可以通过在前面加上no变成负的(例如,"more"选项的-nomore)。如果不是用"!",而是"+",这表示它会在每次出现的时候增加一个变量。如果选项出现在命令行里,那么相关的变量被设置为1;如果负的选项出现了,那么相关的变量就被设置为0。

#命令行
GetOptions(
'writer|w=s' => \$writer,
'book|b=s' => \$book,
'file|f=s' => \$file,
'object|o=s' => \$obj,
'regex|r=s' => \$chap_regex,
'style|s=s' => \$css,
);

0 评论: