加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl的Getopt::Long和pod::usage

发布时间:2020-12-16 00:16:28 所属栏目:大数据 来源:网络整理
导读:代码: 需要显式地定义变量且初始化。例如optionX。 如果没有定义变量且显式初始化,且没有在命令行指定选项,则选项对应的变量将为未定义。 ? # !/bin/perl-5.8.3/bin/perl$ use ?warnings;$ use ?strict;$ use ?Data::Dumper;$ use ?Getopt::Long;$ use ?P


代码:

需要显式地定义变量且初始化。例如optionX。

如果没有定义变量且显式初始化,且没有在命令行指定选项,则选项对应的变量将为未定义。

?

# !/bin/perl-5.8.3/bin/perl$
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$optionXn ");
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$


?

完!?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读