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

$0

  入力をTSVと見なして、同じ列は縦に揃えて空白文字で埋めて出力する。
 
 [オプション] :

  -b char ; 間に埋める文字列。未指定なら半角空白 ' ' 。例として  -b "-" 。betweenのbのつもり。
  -c char ; 列間で、列の直前に入れる文字。未指定なら半角空白 ' ' 。例として  -c "|" 。connectorのcのつもり。
  -f : ある行が列の数が少ないときに、最も列数の多い行に合わせて、列の数を増やす指定。
  -i delim : 区切り文字の変更。未指定なら、タブ文字。(出力は空白文字うめであり、変えない。)
  -r N  : 最も右側の列を何列について、文字幅の計算の対象外とするかの 値の指定。未指定なら 0。
  -s N : (実験的)出力の各セルにおいて、長すぎるセルを可能であれば埋めた空白をさらに幅何文字分(半角相当)まで縮めるか指定。
  -x : less に渡す引数(-xによるタブ位置の指定)のみを出力して終了。時には、とても便利。
  -D num : このコマンドの動作についてのデモを表示して終了。numは1〜4。(開発上テストでも使う。)

  --delcolor : 単に入力の着色(ASCIIエスケープシーケンスによるもの)を除去。テスト機能であり、おまけの機能である。
  --right : 右揃えにする。この指定が無いと、左揃えである。
  --keep 'CRLF' : Windows形式だと改行文字が CR LF となるが、そのCRの部分を取り除く操作を、このオプション指定だと抑制する(テスト目的などを想定)。


  --help : この $0 のヘルプメッセージを出す。  perldoc -t $0 | cat でもほぼ同じ。
  --help opt : オプションのみのヘルプを出す。opt以外でも options と先頭が1文字以上一致すれば良い。

  開発メモ: 
   * 行列として変数Cを参照するときに値が未定義の時にどうすれば良いか。
   * INT{ALRM}を使って15秒ごとに、一旦出力する機能を付けたい。
   * Ctrl+ZやCtrl+Cに対する機能を付けたい。
   * -x による less の -xに渡す数の配列を STDERR に出力したい。その場合、2次情報の出力を抑制する -20も実装することになるであろう。
   * --rightにおいて、特定の列だけ、または、特定の列以外を右寄せに出来ないだろうか?
   * 出力の最後が余分に1行出力されている問題が発生中。

  Text::VisualWidth のインスートルがあらかじめ必要である。