memo.xight.org

日々のメモ

Getopt::Long の使用法

Getopt:Long とは

  伝統的なものや GNU や POSIX の getopt() 関数のよりよい機能性をインプリメントするもの.
  Getopt::Std は 1 文字しかオプションの文字が取れない.
  Getopt::Long は `-' や `--' , `+' で始まる 1 文字以上のオプションが取れる.

具体的な使用法

my %options = ( help  =>  0);
$ret = GetOptions(\%options,\$pattern,'help|h');
if ($options{help}){ &usage(); }


配列に入れたい場合

  最後に `@' を入れる
  ex)
$ret = GetOptions('file|f=s@',\@filelist);

  --file /where/foo --file /where/var というオプションで
  @filelist =['/where/foo','/where/var']; と同じ

引数指定子

引数指定子 引数 引数の省略 引数省略時の値 備考
<無し> --- --- オプションが指定されると,リンク先の変数が 1 になる.
! --- --- 前に`no' を付けると否定できる.ex) --nosize とか
=s 文字列 省略不可 --- 文字列の先頭が-または--で始まっていてもオプションとはみなされない.
:s 文字列 省略可能 '' 文字列の先頭が-または--で始まっている場合は次のオプションとみなされる.
=i 整数 省略不可 --- 負の値を示すために引数の先頭に-をつけることができる.
:i 整数 省略可能 0 負の値を示すために引数の先頭に-をつけることができる.
=f 実数 省略不可 --- 負の値を示すために引数の先頭に-をつけることができる.
:f 実数 省略可能 0 負の値を示すために引数の先頭に-をつけることができる.
- 補足
  %options の中にはデフォルト値を入れておく.
  $options{help} で値が取れる.

Reference

  Perl_man Getopt.3pm
  http://www.att.or.jp/perl/man/getopt.3pm.html