[RFC] Data::Counter
- From: shanleiguang@xxxxxxxxx
- Date: Thu, 8 May 2008 07:42:44 -0700 (PDT)
Hello all -
I've written a new module called Pretty::Table that I'm planning to
put on CPAN. Take a look at the documentation and tell me what you
think, thanks.
=head1 NAME
C<Pretty::Table> - to print pretty text table
=head1 Example
use Pretty::Table;
my $pt = Pretty::Table->new(
data_type => 'row', #row mode
data_format => 'ucfirst', #upper char
if_multi_lines => 1, #enable multi-lines mode
max_col_length => 10, #set max_col_length to 10
);
my $dr = [
['id','name','sex','age','email'],
['01','tommy','male',27],
['02','jarry','male',26],
['03','shanleiguang',26,'shanleiguang@xxxxxxxxx'],
];
$pt->set_data_ref($dr);
$pt->set_title('Contacts');
$pt->set_align('left');
$pt->set_data_format('ucfirst');
$pt->insert(['05','jackie','male',27,'jakie@xxxxxxxxxxxxx']);
$pt->insert(['04','marry','female',26], 4);
print $pt->output();
$pt->set_data_type('col');
$pt->set_deco_cross('*');
$pt->set_if_has_title(0);
print $pt->output();
=head1 Example Output
+---------------------------------------------+
| Contacts |
+----+------------+--------+-----+------------+
| id | name | sex | age | email |
+----+------------+--------+-----+------------+
| 01 | tommy | male | 27 | |
+----+------------+--------+-----+------------+
| 02 | jarry | male | 26 | |
+----+------------+--------+-----+------------+
| 03 | shanleigua | male | 26 | shanleigua |
| | ng | | | ng@xxxxxxx |
| | | | | om |
+----+------------+--------+-----+------------+
| 04 | marry | female | 26 | |
+----+------------+--------+-----+------------+
*-------*-------*-------*------------*--------*
| id | 01 | 02 | 03 | 04 |
*-------*-------*-------*------------*--------*
| name | tommy | jarry | shanleigua | marry |
| | | | ng | |
*-------*-------*-------*------------*--------*
| sex | male | male | male | female |
*-------*-------*-------*------------*--------*
| age | 27 | 26 | 26 | 26 |
*-------*-------*-------*------------*--------*
| email | | | shanleigua | |
| | | | ng@xxxxxxx | |
| | | | om | |
*-------*-------*-------*------------*--------*
=head2 Methods
=over
=item C<Pretty::Table-E<gt>set_data_type(<'row'|'col']>)
my $dr = [
['id','name','sex','age'], #be a 'row' or a 'col'
[...],
];
=item C<Pretty::Table-
E<gt>set_data_format(<'normal'|'uc'|'lc'|'ucfirst'>)
normal - default, not format
uc - upper character
lc - lower character
ucfirst - upper first character
=item C<Pretty::Table-E<gt>set_data_ref(<$dr>)
$dr is a 2D ArrayRef
my $dr = [
['id','name','sex','age'], #be a 'row' or a 'col'
[...],
];
=item C<Pretty::Table-E<gt>set_if_has_title(<1|0>)
if has table header title, default is 1
=item C<Pretty::Table-E<gt>set_title(<$title>)
default is __PACKAGE__ (Pretty::Table)
=item C<Pretty::Table-E<gt>set_indent(<$indent>)
default is 2
=item C<Pretty::Table-E<gt>set_align(<'left'|'center'|'right'>)
default is 'left'
=item C<Pretty::Table-E<gt>set_margin_left(<$margin_left>)
default is 1, no need to change
=item C<Pretty::Table-E<gt>set_margin_right(<$margin_right>)
default is 1, no need to change
=item C<Pretty::Table-E<gt>set_deco_horizontal(<$deco_h>)
default is '|', no need to change
=item C<Pretty::Table-E<gt>set_deco_vertical(<$deco_v>)
default is '-', no need to change
=item C<Pretty::Table-E<gt>set_deco_cross(<$deco_c>)
default is '+', '*' is also pretty
=item C<Pretty::Table-E<gt>set_empty_fill(<$empty_fill>)
default is ' '(space), no need to change
=item C<Pretty::Table-E<gt>set_if_multi_lines(<1|0>)
default is 1, enable multi-lines mode
=item C<Pretty::Table-E<gt>set_max_col_length(<$max_col_length>)
default is 40, 'if_multi_lines' must enabled
=back
=head1 AUTHOR
Shan LeiGuang E<lt>shanleiguang@xxxxxxxxxx<gt>
=cut
.
- Follow-Ups:
- Re: [RFC] Data::Counter
- From: Darin McBride
- Re: [RFC] Data::Counter
- Prev by Date: Looking for pre-built DBI/DBD:Oracle modules for Perl 5.8.4 on Solaris 10 platform
- Next by Date: Re: [RFC] Data::Counter
- Previous by thread: Looking for pre-built DBI/DBD:Oracle modules for Perl 5.8.4 on Solaris 10 platform
- Next by thread: Re: [RFC] Data::Counter
- Index(es):
Relevant Pages
|
|