GETOPT(3) USER COMMANDS GETOPT(3)
NAME
getopt - まとめることも可能な、1 文字スイッチの処理
getopts - まとめることも可能な、1 文字スイッチの処理
GetOptions - 拡張した getopt 処理
SYNOPSIS
use Getopt::Std;
getopt('oDI'); # -o、-D、-I は引数をとることができ、
# opt_* に値を設定
getopts('oif:'); # -o、-i は引数をとらず、-f は引数をとる
# オプションはこれだけ
use Getopt::Long;
$result = GetOptions (...option-descriptions...);
DESCRIPTION
getopt() 関数と getopts() 関数は、まとめることも可能な、1 文
字スイッチの処理を行ないます。 getopt() 関数の引数は、引数
をとるすべてのスイッチを並べた文字列を指定します。 ここに指
定されない文字は、引数をとれないスイッチとして使用することが
できます。 getopts() 関数の引数にも、スイッチとして使用でき
る文字を並べた文字列を指定しますが、引数をとるもの、とらない
もの双方を指定し、引数をとるものは直後に ':' を置くことで示
します。 ここに指定しない文字は、スイッチとして使用できませ
ん。 スイッチが見つかると、(そのスイッチが x とすると) 変数
$opt_x に、引数の値か、引数のないものは 1 が設定されます。
引数をとるスイッチでは、引数との間にスペースがあっても、なく
てもかまいません。
Getopt::Long モジュールは、GetOptions() という拡張 getopt 関
数をインプリメントするものです。 この関数は、新しい構文 (オ
プションをまとめず、長いオプション名) を追加するものです。
伝統的なものや GNU や POSIX の getopt() 関数のよりよい機能性
をインプリメントするものです。
option-description は、Perl の識別子として有効なものでなけれ
ばならず、引数記述子を付けることができます。
引数記述子には、以下のものが使用できます:
<none> オプションは引数をとらない
! オプションは引数をとらず、否定できる
=s :s オプションは必須の(=) か省略可能な(:) 文字列引数をとる
=i :i オプションは必須の(=) か省略可能な(:) 整数引数をとる
=f :f オプションは必須の(=) か省略可能な(:) 実数引数をとる
Perl module manpages Last change: Release 5.0 Patchlevel 00 1
GETOPT(3) USER COMMANDS GETOPT(3)
"name" というオプションが指定されると、Prel の変数 $opt_name
が、指定された値に設定されます。 呼びもとのプログラムでは、
この変数を使って、該当のオプションが指定されたかを調べること
ができます。 引数をとらないオプションは、1 が設定されます。
省略可能な引数をとるオプションでは、引数が無いときには、定義
済みとなりますが、'' が設定されます。
引数記述子に "@" を付け加えると、オプションは配列として扱わ
れます。 値は設定されるのではなく、配列 @opt_name に push
されます。
値をとらないオプションには、"!" 引数記述子を指定することがで
き、これによって否定オプションが使えます。 つまり、"foo!"
とすると、-foo ($opt_foo が 1 になる) と -nofoo ($opt_foo が
0 になる) が許容されるようになります。
オプション名は、"foo|bar|blech=s" のように '|' で区切ったオ
プション名のリストにすることもできます。 この例では、オプシ
ョン 'bar' とオプション 'blech' は $opt_foo を設定することに
なります。
コンフィギュレーション変数 $autoabbrev の設定によって、オプ
ション名を、ユニークな範囲で省略することができるようになりま
す。
オプション名には、(pcc-struct-return のように) ハイフンを使
うことができ、対応する Perl 変数では、($opt_pcc_struct_return
のように) 下線に変換されます。 単独のハイフンが使われたとき
も、オプションとして扱われ、Perl の変数 $opt_ に対応します。
ハイフンを 2 つ並べ、"--" とするとオプションリストの終わりを
示します。
リストの最初のオプションが英字以外の文字だけからなるときは、
それが一般のオプション開始文字列として解釈されます。 その開
始文字列のいずれかの文字で始まるものがオプションとなります。
デフォルトのオプション開始文字は、(伝統的な) "-"、(POSIX の)
"--"、(使われなくなってきていますが、GNU の) "+" が使えます。
"--" で始まるオプションは、"--foo=bar" のように "=" で区切っ
て、引数を付けることができます。
コンフィギュレーション変数 $getopt_compat をゼロ以外に設定す
ると、"+" で始まるオプションも "+foo=bar" のように引数をとる
ことができます。
この関数がエラーを検出すると、リターン値として 0 (偽) を返し
ます。
Perl module manpages Last change: Release 5.0 Patchlevel 00 2
GETOPT(3) USER COMMANDS GETOPT(3)
EXAMPLES
オプション "one:i" (つまり、省略可能な整数引数をとる) なら、
次のように解釈されます:
-one -two -> $opt_one = '' で -two は次のオプション
-one -2 -> $opt_one = -2
また、"foo=s" かつ "bar:s" なら:
-bar -xxx -> $opt_bar = '' で '-xxx' は次のオプション
-foo -bar -> $opt_foo = '-bar'
-foo -- -> $opt_foo = '--'
となります。
GNU や POSIX のフォーマットでは、オプション名と値は、組み合
わせることができます:
+foo=blech -> $opt_foo = 'blech'
--bar= -> $opt_bar = ''
--bar=-- -> $opt_bar = '--'
$autoabbrev オプション名をユニークな範囲で省略できるようにし
ます。 環境変数 POSIXLY_CORRECT が設定されない
限り、デフォルトは 1 です。
$getopt_compat
'+' でオプションを開始できるようにします。 環境
変数 POSIXLY_CORRECT が設定されない限り、デフォ
ルトは 1 です。
$option_start
オプションの開始を示す正規表現です。 環境変数
POSIXLY_CORRECT が設定されていれば、デフォルトは
(--|-) で、設定されていなければ、(--|-|\+) です。
$order オプション以外のものとオプションを混ぜて使えるか
を指定します。 環境変数 POSIXLY_CORRECT が設定
されていれば、デフォルトは $REQUIRE_ORDER で、設
定されていなければ、$PERMUTE です。
$ignorecase オプションとマッチングするとき、大文字小文字を区
別しないことを指定します。 デフォルトは 1 です。
$debug デバッグ出力を可能にします。 デフォルトは 0 で
す。
NOTE
まだ、Exporter を使っていません。 パッケージさえも使ってい
ません。 つまり、本当のモジュールではありません。
Perl module manpages Last change: Release 5.0 Patchlevel 00 3