Text::ASCIITableで整形表示
ASCII ART風の「表」の形式を作成するモジュール。
setColsで列のタイトルを設定してaddRowで行のデータを追加して行き、drawメソッドで表形式の文字列を取得する。
use Encode; use utf8; use Text::ASCIITable; my $tbl = new Text::ASCIITable(); $tbl->setCols('Name','Age','Address'); $tbl->addRow('Kaneko',50,'Chiba'); $tbl->addRow('John',33,'Hyogo'); $tbl->addRow(encode('euc-jp', 'タロウ'),22,'Hokkaido'); print $tbl->draw;
数値の列は右寄せしてくれる。日本語の出力は、端末の文字コードにencodeしてあげる必要がある。
以下のスクリプトではいくつかオプションを指定している。
newのalignHeadRow => 'center' | 列のタイトルをセンタリング |
newのdrawRowLine => 1 | 1行毎に区切りの線を表示する |
setColWidth | NameとAddress列の幅を「10文字分」と指定している |
use Text::ASCIITable; my $tbl = new Text::ASCIITable({ alignHeadRow => 'center', drawRowLine => 1 }); $tbl->setCols('Name','Age','Address'); $tbl->setColWidth('Name', 10, 1); $tbl->setColWidth('Address', 10, 1); $tbl->addRow('Kaneko',50,'Chiba'); $tbl->addRow('John',33,'Hyogo'); $tbl->addRow('Taro',22,'Hokkaido'); print $tbl->draw;
サーバのログを調べた結果を表示するときに使うといいかも。あとは、アプリケーションの「printデバッグ」とか。