在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
代码: 需要显式地定义变量且初始化。例如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$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$
完! |
请发表评论