[perl]Getopt関数は、ユーザーパラメータの使用を受信します.

10539 ワード

linuxでは、perlの制御パラメータに関する関数を理解するために、プログラムにパラメータを追加する必要があります.getopt.linuxにあるパラメータには2つの形式がある.一つは-helpで、もう一つは-h.つまり-と-の別れです.-完全なパラメータを表します.-簡略化パラメータを表す.
perlにもこの2種類がある.
Getopt::Stdモジュールの機能:perlコマンドラインで受け入れられるパラメータを初期化し、コマンドラインパラメータの解析を簡略化します.
簡略化されたパラメータの例:
1
2
3
4
5
6
7
8
9
10
#!/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
"
if $opt_a; print "\$opt_b =>; $opt_b
"
if $opt_b; print "\$opt_c =>; $opt_c
"
if $opt_c;
出力は次のとおりです.
[root@mail test]# ./getopt.pl -a aa -b bb -c cc
$opt_a =>; aa
$opt_b =>; bb $opt_c =>; cc
 
完全なパラメータ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
#!/usr/bin/perl 
 use Getopt::Long;
  Getopt::Long::GetOptions(              
      'page=i'    => \$page,            
       'onoff!'    => \$onoff,           
          'help'      => \$wants_help,           
       'name=s'    => \$name,           
       'number:i' => \$number); 
 
}
 
if(defined($page)){   print "page flag set to $page "
 }if(defined($onoff)){
           print "onoff flag set to $onoff ";
}
if(defined($wants_help)){
           print "help flag set to $wants_help ";
}
if(defined($name)){
           print "name flag set to $name ";
}
if(defined($number)){
           print "number flag set to $number ";
}
./getlong.pl -name AAAname flag set to AAA
 
パラメータ付き※パラメータタイプ:整数、浮動小数点数、文字列
GetOptions( ‘tag=s’ =>\$tag );‘=’このパラメータを表すには必ずパラメータ値がある、もし‘を改用するならば:'はパラメータ値‘s’が伝達文字列パラメータを表す必要はない、‘i’表に整数パラメータを伝達するならば、‘f’表に浮動小数点数example:testを伝達する.pl –tag=stringortest.pl –tag string
 
パラメータ
GetOptions ("library=s"=>\@libfiles);パラメータは@tagorGetOptions("library=s@"=>$libfiles)に渡されます.パラメータは@$tagexample:testに渡されます.pl –library lib/stdlib –library lib/extlib
 
パラメータ別名GetOptions('length|height=f’=>$length);最初の名前はprimary name、その他の名前はalias(複数のalias名が使用可能)hashパラメータを使用する場合はprimary nameをkey値として使用します.
パラメータの略称と大文字と小文字GetOptions(‘length|height=f’=>$length,‘head"=>$head);特に設定されていない場合、Getoptはパラメータの大文字と小文字を無視します.つまり、-l or-Lは同じパラメータを指します(-length)
パラメータを渡さないオプション、すなわちいくつかのスイッチタイプについては、第1部の後に「!」を接続できます.これは、このオプションが引数を受信しないことを示しますが、前にnoを付けることで負にすることができます(たとえば、「more」オプションの-nomore).「!」でなければ、「+」ではなく、出現するたびに変数が増加することを示します.オプションがコマンドラインに表示されると、関連する変数は1に設定されます.負のオプションが表示されると、関連する変数は0に設定されます.
 
hashパラメータ値(名前とパラメータ値がある)GetOptions(「define=s」=>%defines);orGetOptions ("define=s%"=>\$defines);example:test.pl –define os=linux –define vendor=redhat