perlのGetopt::Long(GetOptions)によるプログラム引数(パラメータ)の取得

perlのGetOptionsによるプログラム引数(パラメータ)の取得方法。
より詳細な説明は、perldoc.perl.orgで。

test01.pl
#!/usr/local/bin/perl

use Getopt::Long;

my $prm_string;
my $prm_int;
my $prm_flag;
my $prm_opt_string;

GetOptions(
      "s=s" => \$prm_string
    , "i=i" => \$prm_int
    , "f" => \$prm_flag
    , "os:s" => \$prm_opt_string
    );

print "*** prm_string=[$prm_string] prm_int=[$prm_int] prm_flag=[$prm_flag] prm_opt_string=[$prm_opt_string]\n";


実行結果
$ ./test01.pl
*** prm_string=[] prm_int=[] prm_flag=[] prm_opt_string=[]


$ ./test01.pl --s abc
*** prm_string=[abc] prm_int=[] prm_flag=[] prm_opt_string=[]
$ ./test01.pl --s=abc
*** prm_string=[abc] prm_int=[] prm_flag=[] prm_opt_string=[]
= があってもなくてもOK

$ ./test01.pl --i 123
*** prm_string=[] prm_int=[123] prm_flag=[] prm_opt_string=[]
$ ./test01.pl --i abc
Value "abc" invalid for option i (number expected)
*** prm_string=[] prm_int=[] prm_flag=[] prm_opt_string=[]
integerに文字を指定するとエラー

$ ./test01.pl --f
*** prm_string=[] prm_int=[] prm_flag=[1] prm_opt_string=[]
型指定なしの場合は、オプションの指定で「1」が設定される。

$ ./test01.pl --s
Option s requires an argument
*** prm_string=[] prm_int=[] prm_flag=[] prm_opt_string=[]
指定したパラメータは値を設定しないとエラー

$ ./test01.pl --os abc
*** prm_string=[] prm_int=[] prm_flag=[] prm_opt_string=[abc]
$ ./test01.pl --os
*** prm_string=[] prm_int=[] prm_flag=[] prm_opt_string=[]
但し、コロン(:)の場合はなくてもエラーにならない

関連記事

Comment

(編集・削除用)
管理者にだけ表示を許可

Trackback

URL
https://nosource.blog.fc2.com/tb.php/20-ee31e532
この記事にトラックバック(FC2Blog User)

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
226位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
37位
アクセスランキングを見る>>

RSSリンクの表示

QRコード

QRコード

サイトマップ

Copyright © nopgm