The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

$0

 データファイル(TSV形式、一行目はヘッダ)について、各列の有用な情報を出力する。

 出力項目:
     1. 列番号 ; 白
     2. 異なり数(各列に異なる値が何個出現したか) ; 明るい緑
     3. 平均値 ( -m で平均値の出力は抑制可能) ; 青
     4. 列名 (ヘッダから取り出す) ; 黄色
     5. 値の範囲 ; 明るい白
     6. 値の頻出ランキング ; 暗い白
     7. 頻出上位と下位についての出現回数 ; 明るい緑
     8. 値の文字列長の範囲 ; 青

 オプション : 

    -g 6     ;  具体的な値を何個表示させるか指定する。
    -m       ; 平均値を表示しない。(平均値は strtod を使っている。) 
    -l 10    ; 各セルの値の長さを指定文字数に制限する。(現状 ASCII 文字のみで正常動作)
    -0 REGEX ; 除外する値の正規表現の指定。 '^部分正規表現$' のような指定の仕方をよく使うことになるだろう。 

    -=       ;  ヘッダが存在する場合は必ず指定すること。そうはない場合は、列名は連番になる。
    -/ REGEX : 区切り文字をタブ文字ではなくて、 str  に変更。
    -u       ; utf-8 として処理することとする。 -u が指定されないと、バイト単位の処理となる。
    -z       ; 入力は gzip 圧縮されていることを仮定。

    -@ N : N 秒ごとに,何行を読んだかを報告する。 Report how many have read every N seconds.    
   
    --help : この $0 のヘルプメッセージを出す。  perldoc -t $0 | cat でもほぼ同じ。
    --help opt : オプションのみのヘルプを出す。opt以外でも options と先頭が1文字以上一致すれば良い。

  開発上のメモ :
    * プログラム内の periodicreport は計算速度を低下させるので、ALRM を使った方式に変えよう。
    * colsummary 出力の列名を付加するオプションが欲しい。