http://qs321.pair.com?node_id=676111

andreas1234567 has asked for the wisdom of the Perl Monks concerning the following question:

With Text::Table, I wonder if it's possible to add horizontal lines (rules) between each cell while not splitting multi-line cells.
$ cat ~/test/perl/text.table/text.table.pl use strict; use warnings; use Text::Table; my $tb = Text::Table->new(\'| ', "", \' | ', "Field ", \'| ', "Length ", \'| +', "Comment ", \' |'); my @AoA = ( [ 1, "Foo", "20", "Foo" ], [ 2, "Bar", "35", "Bar\nBar" ], [ 3, "Tze", "10", "Tze\nTze" ], ); $tb->load(@AoA); my $rule = $tb->rule(qw/- +/); my @arr = $tb->body; print $rule, $tb->title, $rule; for (@arr) { print $_ . $rule; } __END__
Actual output:
$ /usr/bin/perl ~/test/perl/text.table/text.table.pl +---+-------+--------+----------+ | | Field | Length | Comment | +---+-------+--------+----------+ | 1 | Foo | 20 | Foo | +---+-------+--------+----------+ | 2 | Bar | 35 | Bar | +---+-------+--------+----------+ | | | | Bar | +---+-------+--------+----------+ | 3 | Tze | 10 | Tze | +---+-------+--------+----------+ | | | | Tze | +---+-------+--------+----------+
Wanted output:
$ /usr/bin/perl ~/test/perl/text.table/text.table.pl +---+-------+--------+----------+ | | Field | Length | Comment | +---+-------+--------+----------+ | 1 | Foo | 20 | Foo | +---+-------+--------+----------+ | 2 | Bar | 35 | Bar | | | | | Bar | +---+-------+--------+----------+ | 3 | Tze | 10 | Tze | | | | | Tze | +---+-------+--------+----------+
--
Andreas