perl中Getopt::Long与pod::usage用法举例
本节内容:
perl中Getopt::Long与pod::usage的用法。
要求:
需要显式地定义变量且初始化。例如optionX。
如果没有定义变量且显式初始化,且没有在命令行指定选项,则选项对应的变量将为未定义。
例子:
#!/bin/perl-5.8.3/bin/perl$
#site: www.jiaochengji.com
#
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'} = 0 },
"help|?" => \$g_opts->{'help'}
);
if(!($g_opts->{'optionA'})){
&pod2usage( -verbose => 1);#exit status will be 1
}
if($g_opts->{'help'}){
&pod2usage( -verbose => 1);#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(0);$
$
$
__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 8$
$
=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的用法,以帮助大家快速掌握Getopt::Long与pod::usage的使用方法。
您可能感兴趣的文章:
perl中Getopt::Long与pod::usage用法举例
使用getopt处理shell脚本的参数实例学习
perl读写文件与命令行解析的示例代码
linux shell命令行选项与参数用法详解
bash shell命令行选项与参数处理
Golang系列(四)之面向接口编程
python命令行参数是什么
#perl 语言简明教程
深入php中getopt的用法详解
python getopt模块怎么用?