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