Perl脚本经常用于编写并执行被命令行选项(command-line options)控制的相关行为,这方面的例子包括请求帮助和可以改变程序输出的冗长程度。
Perl具有很多由基本get选项函数变异而来的函数,但这一文章主要集中于Getopt::Std模块中的getopts()函数。
Getopts是一个简单而又灵活的程序,用于处理单一字符命令行选项。以合法的命令行选项调用getopts(),结果可以得到一个可选择的hash引用。
选项字符串包含一个列表的字母,这些字母表示合法的命令行选项。紧跟着一个字母之后的冒号(:)可以表示可用于选项的变量。以下是一个简单的范例:
useGetopt::Std;
getopts('hmf:');
你可以采用两种方式来解析和设定你的选项参数。如果命令行为a-h,变量$opt_h将为1,类似的,如果命令行为a-m,变量$opt_m将为1。如果命令行为a-f,它之后将紧跟着一个字符串变量,如果出现一个变量,$opt_f将设定为字符型。
以下是更加完整的范例:
use Getopt::Std;
getopts('hmf:');
die "Usage: [-h] [-m] [-f string]
" if ($opt_h);
print "Option M was present
" if ($opt_m);
print "Option F was passed '$opt_f'
" if ($opt_f);
print "No options
" if (!$opt_f && !$opt_m);
使用getopts可以节省你的时间,并简化你的代码,特别是当你需要处理程序中的命令行选项的时候。