珀耳塞福建 发表于 2015-12-26 09:30:48

Perl 模块 Getopt::Std 和 Getopt::Long

  示例程序:
  getopt.pl;



#!/usr/bin/perl -w
#use strict;
use Getopt::Std;
use vars qw($opt_a $opt_b $opt_c);
getopts('a:b:c');
print "opt_a =>;$opt_a\n" if $opt_a;
print "opt_b =>;$opt_b\n" if $opt_b;
print "opt_c =>;$opt_c\n" if $opt_c;

  注释:'a:b:c',a和b后有冒号,表示-a,-b后面要跟参数.c后面没有冒号,表示-c后面不带参数.
  而且-a,-b后所跟的参数分别赋给变量$opt_a和$opt_b,对于变量$opt_c,若命令行加了-c,则$opt_c=1,否则为0.
  如:
  perl getopt.pl -a aa -b bb -c cc
  显示:
  opt_a =>;aa
opt_b =>;bb
opt_c =>;1
  如:
  perl getopt.pl -a aa -b bb
opt_a =>;aa
opt_b =>;bb
  (因为加了if判断,所以$opt_c没有显示);
  
  
  上面的例子,用Getopt::Long可以这样实现
  
  
  
  上面的例子,用Getopt::Long可以这样实现
  getoptions.pl



#!/usr/bin/perl
use Getopt::Long;
use vars qw($opt_a $opt_b $opt_c);
GetOptions("a=s"=>\$opt_a,"b|opt_b:i"=>\$opt_b,"c"=>\$opt_c);
print "opt_a =>;$opt_a\n" if $opt_a;
print "opt_b =>;$opt_b\n" if $opt_b;
print "opt_c =>;$opt_c\n" if $opt_c;


a=s表示可以用-a aa的形式,即变量-a 类型是字符串
b|opt_b:i表示可以用-b或者-opt_b来取得变量,类型为整型
c表示如果有-c的参数值则$opt_c等于1,否则等于0
其中
s表示字符串,i表整型,f表示浮点型
=表示要有参数值或者没有这个参数如:perl getoptions.pl -a aa -b bb或者perl getoptions.pl -b bb
:表示可有参数值也可以没有参数值
如:
perl getoptions.pl -a aa -b 2 -c cc
opt_a =>;aa
opt_b =>;2
opt_c =>;1
页: [1]
查看完整版本: Perl 模块 Getopt::Std 和 Getopt::Long