NAME
Acme::CPANModules::TextTable - Modules that generate text tables
VERSION
This document describes version 0.015 of Acme::CPANModules::TextTable
(from Perl distribution Acme-CPANModules-TextTable), released on
2023-06-15.
SYNOPSIS
To run benchmark with default option:
% bencher --cpanmodules-module TextTable
To run module startup overhead benchmark:
% bencher --module-startup --cpanmodules-module TextTable
For more options (dump scenario, list/include/exclude/add participants,
list/include/exclude/add datasets, etc), see bencher or run "bencher
--help".
DESCRIPTION
Currently excluded from this list are:
* Text::SimpleTable::AutoWidth (wrapper to Text::SimpleTable);
* Text::ASCIITable::EasyTable (wrapper to Text::ASCIITable);
ACME::CPANMODULES ENTRIES
Text::Table::Any
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
This is a frontend for many text table modules as backends. The
interface is dead simple, following Text::Table::Tiny. The main
drawback is that it currently does not allow passing (some, any)
options to each backend.
Text::SimpleTable
Author: MRAMBERG <https://metacpan.org/author/MRAMBERG>
As its name implies, a simple table-generating module with minimal
documentation and a few choices or border characters. You have to
set the width of all columns manually.
Text::UnicodeBox::Table
Author: EWATERS <https://metacpan.org/author/EWATERS>
The main feature of this module is the various border style it
provides drawn using Unicode box-drawing characters. It allows
per-row style. The rendering speed is particularly slow compared to
other modules.
Text::Table::Manifold
Author: RSAVAGE <https://metacpan.org/author/RSAVAGE>
Two main features of this module is per-column aligning and wide
character support. This module, aside from doing its rendering, can
also be told to pass rendering to HTML, CSV, or other text table
module like Text::UnicodeBox::Table); so in this way it is similar
to Text::Table::Any.
Text::ANSITable
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
This 2013 project was my take in creating a text table module that
can handle color, multiline text, wide characters. I also threw in
various formatting options, e.g. per-column/row/cell
align/valign/pad/vpad, conditional formatting, and so on. I even
added a couple of features I never used: hiding rows and specifying
columns to display which can be in different order from the original
specified columns or can contain the same original columns multiple
times. I think this module offers the most formatting options on
CPAN.
In early 2021, I needed colspan/rowspan and I implemented this in a
new module: Text::Table::Span (later renamed to Text::Table::More).
I plan to add this feature too to Text::ANSITable, but in the
meantime I'm also adding more formatting options which I need to
Text::Table::More.
Text::ASCIITable
Author: LUNATIC <https://metacpan.org/author/LUNATIC>
Text::FormatTable
Author: TREY <https://metacpan.org/author/TREY>
Text::MarkdownTable
Author: VOJ <https://metacpan.org/author/VOJ>
Text::Table
Author: SHLOMIF <https://metacpan.org/author/SHLOMIF>
Text::Table::Tiny
Author: NEILB <https://metacpan.org/author/NEILB>
The simple and tiny table-generating module which I liked back in
2012 (v0.03). It employs an sprintf() trick to generate a single
row. This module started my personal experiments creating other
table-generating modules (at last count I've created no fewer than
15 of them!).
Text::Table::TinyBorderStyle
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::Table::More
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
A module I wrote in early 2021. Main distinguishing feature is
support for rowspan/clospan. I plan to add more features to this
module on an as-needed basic. This module is now preferred to
Text::ANSITable, although currently it does not offer nearly as many
formatting options as Text::ANSITable.
Text::Table::Sprintf
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
A performant (see benchmark result) and lightweight (a page of code,
no use of modules at all), but with minimal extra features.
Text::Table::TinyColor
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::Table::TinyColorWide
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::Table::TinyWide
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::Table::Org
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::Table::CSV
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::Table::HTML
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::Table::HTML::DataTables
Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>
Text::TabularDisplay
Author: DARREN <https://metacpan.org/author/DARREN>
ACME::CPANMODULES FEATURE COMPARISON MATRIX
+-------------------------------+----------------+------------------+---------------+--------------+----------------+-----------------+-------------+-------------------+------------------+---------------------+--------------+------------+------------------+--------------------+-----------------+----------------+-------------------+----------+-----------------------+---------------------+-----------------+-----------+
| module | align_cell *1) | align_column *2) | align_row *3) | box_char *4) | color_data *5) | color_theme *6) | colspan *7) | custom_border *8) | custom_color *9) | multiline_data *10) | rowspan *11) | speed *12) | valign_cell *13) | valign_column *14) | valign_row *15) | wide_char_data | column_width *16) | pad *17) | per_column_width *18) | per_row_height *19) | row_height *20) | vpad *21) |
+-------------------------------+----------------+------------------+---------------+--------------+----------------+-----------------+-------------+-------------------+------------------+---------------------+--------------+------------+------------------+--------------------+-----------------+----------------+-------------------+----------+-----------------------+---------------------+-----------------+-----------+
| Text::Table::Any | N/A *22) | N/A *23) | N/A *24) | N/A *25) | N/A *26) | N/A *27) | N/A *28) | N/A *29) | N/A *30) | N/A *31) | N/A *32) | N/A *33) | N/A *34) | N/A *35) | N/A *36) | N/A *37) | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::SimpleTable | no | no | no | no | no | no | no | yes *38) | no | no | no | yes *39) | no | no | no | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::UnicodeBox::Table | no | yes | N/A | no | yes | no | no | yes | no | no | no | yes | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::Manifold | no | yes | N/A | N/A | yes | no | no | no *40) | no | no | no | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::ANSITable | yes | yes | yes | yes | yes | yes | no | yes | yes | yes | no | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| Text::ASCIITable | N/A | N/A | N/A | no | no | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::FormatTable | N/A | N/A | N/A | no | no | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::MarkdownTable | N/A | N/A | N/A | no | no | N/A | N/A | N/A | N/A | no *41) | N/A | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table | N/A | N/A | N/A | N/A *42) | no | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::Tiny | N/A | N/A | N/A | yes | yes | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::TinyBorderStyle | N/A | N/A | N/A | yes | no | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::More | yes | yes | yes | yes | yes | no | yes | yes | no | yes | yes | yes | yes | yes | yes | yes | no | no | no | no | no | no |
| Text::Table::Sprintf | N/A | N/A | N/A | no | no | N/A | N/A | N/A | N/A | no | N/A | yes *43) | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::TinyColor | N/A | N/A | N/A | no | yes | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::TinyColorWide | N/A | N/A | N/A | no | yes | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::TinyWide | N/A | N/A | N/A | no | no | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::Org | N/A | N/A | N/A | no | no | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | no | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::CSV | N/A | N/A | N/A | N/A *44) | no | N/A | N/A | N/A | N/A | yes *45) | N/A | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::HTML | N/A | N/A | N/A | no | no *46) | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::Table::HTML::DataTables | N/A | N/A | N/A | no | no *47) | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
| Text::TabularDisplay | N/A | N/A | N/A | N/A *48) | no | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | yes | N/A | N/A | N/A | N/A | N/A | N/A |
+-------------------------------+----------------+------------------+---------------+--------------+----------------+-----------------+-------------+-------------------+------------------+---------------------+--------------+------------+------------------+--------------------+-----------------+----------------+-------------------+----------+-----------------------+---------------------+-----------------+-----------+
Notes:
1. align_cell: Whether module supports aligning text horizontally in
individual cells (left/right/middle)
2. align_column: Whether module supports aligning text horizontally in a
column (left/right/middle)
3. align_row: Whether module supports aligning text horizontally in a
row (left/right/middle)
4. box_char: Whether module can utilize box-drawing characters
5. color_data: Whether module supports ANSI colors (i.e. text with ANSI
color codes can still be aligned properly)
6. color_theme: Whether the module supports color theme/scheme
7. colspan: Whether module supports column spans
8. custom_border: Whether module allows customizing border in some way
9. custom_color: Whether the module produces colored table and supports
customizing color in some way
10. multiline_data: Whether module supports aligning data cells that
contain newlines
11. rowspan: Whether module supports row spans
12. speed: Rendering speed
13. valign_cell: Whether module supports aligning text vertically in
individual cells (top/bottom/middle)
14. valign_column: Whether module supports aligning text vertically in a
column (top/bottom/middle)
15. valign_row: Whether module supports aligning text vertically in a
row (top/bottom/middle)
16. column_width: Whether module allows setting the width of columns
17. pad: Whether module allows customizing cell horizontal padding
18. per_column_width: Whether module allows setting column width on a
per-column basis
19. per_row_height: Whether module allows setting row height on a
per-row basis
20. row_height: Whether module allows setting the height of rows
21. vpad: Whether module allows customizing cell vertical padding
22. Depends on backend
23. Depends on backend
24. Depends on backend
25. Depends on backend
26. Depends on backend
27. Depends on backend
28. Depends on backend
29. Depends on backend
30. Depends on backend
31. Depends on backend
32. Depends on backend
33. Depends on backend
34. Depends on backend
35. Depends on backend
36. Depends on backend
37. Depends on backend
38. Limited choice of 1 ASCII style and 1 UTF style
39. Slightly slower than Text::Table::Tiny
40. But this module can pass rendering to other module like
Text::UnicodeBox::Table
41. Newlines stripped
42. Does not draw borders
43. The fastest among the others in this list
44. Irrelevant
45. But make sure your CSV parser can handle multiline cell
46. Not converted to HTML color elements
47. Not converted to HTML color elements
48. Irrelevant
BENCHMARKED MODULES
Version numbers shown below are the versions used when running the
sample benchmark.
Text::Table::Any 0.114
Text::SimpleTable 2.07
Text::UnicodeBox::Table
Text::Table::Manifold 1.03
Text::ANSITable 0.608
Text::ASCIITable 0.22
Text::FormatTable 1.03
Text::MarkdownTable 0.3.1
Text::Table 1.134
Text::Table::Tiny 1.03
Text::Table::TinyBorderStyle 0.005
Text::Table::More 0.025
Text::Table::Sprintf 0.006
Text::Table::TinyColor 0.002
Text::Table::TinyColorWide 0.001
Text::Table::TinyWide 0.001
Text::Table::Org 0.031
Text::Table::CSV 0.023
Text::Table::HTML 0.010
Text::Table::HTML::DataTables 0.012
Text::TabularDisplay 1.38
BENCHMARK PARTICIPANTS
* Text::Table::Any (perl_code)
Text::Table::Any
* Text::SimpleTable (perl_code)
Text::SimpleTable
* Text::UnicodeBox::Table (perl_code)
Text::UnicodeBox::Table
* Text::Table::Manifold (perl_code)
Text::Table::Manifold
* Text::ANSITable (perl_code)
Text::ANSITable
* Text::ASCIITable (perl_code)
Text::ASCIITable
* Text::FormatTable (perl_code)
Text::FormatTable
* Text::MarkdownTable (perl_code)
Text::MarkdownTable
* Text::Table (perl_code)
Text::Table
* Text::Table::Tiny (perl_code)
Text::Table::Tiny
* Text::Table::TinyBorderStyle (perl_code)
Text::Table::TinyBorderStyle
* Text::Table::More (perl_code)
Text::Table::More
* Text::Table::Sprintf (perl_code)
Text::Table::Sprintf
* Text::Table::TinyColor (perl_code)
Text::Table::TinyColor
* Text::Table::TinyColorWide (perl_code)
Text::Table::TinyColorWide
* Text::Table::TinyWide (perl_code)
Text::Table::TinyWide
* Text::Table::Org (perl_code)
Text::Table::Org
* Text::Table::CSV (perl_code)
Text::Table::CSV
* Text::Table::HTML (perl_code)
Text::Table::HTML
* Text::Table::HTML::DataTables (perl_code)
Text::Table::HTML::DataTables
* Text::TabularDisplay (perl_code)
Text::TabularDisplay
BENCHMARK DATASETS
* tiny (1x1)
* small (3x5)
* wide (30x5)
* long (3x300)
* large (30x300)
* multiline data (2x1) (not included by default)
* wide char data (1x2) (not included by default)
* color data (1x2) (not included by default)
SAMPLE BENCHMARK RESULTS
Run on: perl: *v5.34.0*, CPU: *Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
(2 cores)*, OS: *GNU/Linux Ubuntu version 20.04*, OS kernel: *Linux
version 5.4.0-91-generic*.
Benchmark with default options ("bencher --cpanmodules-module
TextTable"):
#table1#
{dataset=>"large (30x300)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| participant | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest | errors | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| Text::UnicodeBox::Table | 1 | 980 | 0.00% | 32984.80% | 0.0085 | 20 |
| Text::ANSITable | 2 | 500 | 106.59% | 15914.37% | 0.0054 | 20 |
| Text::Table::More | 2.8 | 350 | 175.52% | 11908.00% | 0.0018 | 20 |
| Text::ASCIITable | 10 | 100 | 883.88% | 3262.69% | 0.001 | 20 |
| Text::FormatTable | 16 | 63 | 1456.20% | 2025.99% | 0.00023 | 23 |
| Text::Table::TinyColorWide | 20 | 60 | 1485.47% | 1986.75% | 0.00071 | 20 |
| Text::Table::TinyWide | 20 | 40 | 2164.65% | 1360.92% | 0.00047 | 20 |
| Text::SimpleTable | 33 | 31 | 3074.33% | 942.26% | 3.5e-05 | 21 |
| Text::Table::Manifold | 30 | 30 | 3114.15% | 929.35% | 0.00068 | 20 |
| Text::Table::Tiny | 38 | 26 | 3638.79% | 784.91% | 0.00014 | 20 |
| Text::TabularDisplay | 47 | 21 | 4511.67% | 617.41% | 4.7e-05 | 23 |
| Text::Table::HTML | 58 | 17 | 5520.76% | 488.62% | 3.8e-05 | 20 |
| Text::Table::TinyColor | 60 | 20 | 5578.82% | 482.60% | 0.00024 | 20 |
| Text::MarkdownTable | 70 | 10 | 6860.53% | 375.32% | 0.00018 | 20 |
| Text::Table | 80 | 10 | 7859.90% | 315.64% | 0.00013 | 20 |
| Text::Table::HTML::DataTables | 130 | 7.8 | 12361.49% | 165.50% | 1.3e-05 | 20 |
| Text::Table::Org | 200 | 6 | 14923.75% | 120.22% | 0.00029 | 21 |
| Text::Table::TinyBorderStyle | 220 | 4.6 | 21244.12% | 55.01% | 1.2e-05 | 20 |
| Text::Table::CSV | 220 | 4.5 | 21542.65% | 52.87% | 9.4e-06 | 20 |
| Text::Table::Any | 300 | 3 | 30477.53% | 8.20% | 8.4e-05 | 20 |
| Text::Table::Sprintf | 300 | 3 | 32984.80% | 0.00% | 4.1e-05 | 20 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::ANSITable Text::Table::More Text::ASCIITable Text::FormatTable Text::Table::TinyColorWide Text::Table::TinyWide Text::SimpleTable Text::Table::Manifold Text::Table::Tiny Text::TabularDisplay Text::Table::TinyColor Text::Table::HTML Text::MarkdownTable Text::Table Text::Table::HTML::DataTables Text::Table::Org Text::Table::TinyBorderStyle Text::Table::CSV Text::Table::Any Text::Table::Sprintf
Text::UnicodeBox::Table 1/s -- -48% -64% -89% -93% -93% -95% -96% -96% -97% -97% -97% -98% -98% -98% -99% -99% -99% -99% -99% -99%
Text::ANSITable 2/s 96% -- -30% -80% -87% -88% -92% -93% -94% -94% -95% -96% -96% -98% -98% -98% -98% -99% -99% -99% -99%
Text::Table::More 2.8/s 179% 42% -- -71% -82% -82% -88% -91% -91% -92% -94% -94% -95% -97% -97% -97% -98% -98% -98% -99% -99%
Text::ASCIITable 10/s 880% 400% 250% -- -37% -40% -60% -69% -70% -74% -79% -80% -83% -90% -90% -92% -94% -95% -95% -97% -97%
Text::FormatTable 16/s 1455% 693% 455% 58% -- -4% -36% -50% -52% -58% -66% -68% -73% -84% -84% -87% -90% -92% -92% -95% -95%
Text::Table::TinyColorWide 20/s 1533% 733% 483% 66% 5% -- -33% -48% -50% -56% -65% -66% -71% -83% -83% -87% -90% -92% -92% -95% -95%
Text::Table::TinyWide 20/s 2350% 1150% 775% 150% 57% 50% -- -22% -25% -35% -47% -50% -57% -75% -75% -80% -85% -88% -88% -92% -92%
Text::SimpleTable 33/s 3061% 1512% 1029% 222% 103% 93% 29% -- -3% -16% -32% -35% -45% -67% -67% -74% -80% -85% -85% -90% -90%
Text::Table::Manifold 30/s 3166% 1566% 1066% 233% 110% 100% 33% 3% -- -13% -30% -33% -43% -66% -66% -74% -80% -84% -85% -90% -90%
Text::Table::Tiny 38/s 3669% 1823% 1246% 284% 142% 130% 53% 19% 15% -- -19% -23% -34% -61% -61% -70% -76% -82% -82% -88% -88%
Text::TabularDisplay 47/s 4566% 2280% 1566% 376% 200% 185% 90% 47% 42% 23% -- -4% -19% -52% -52% -62% -71% -78% -78% -85% -85%
Text::Table::TinyColor 60/s 4800% 2400% 1650% 400% 215% 200% 100% 55% 50% 30% 5% -- -15% -50% -50% -61% -70% -77% -77% -85% -85%
Text::Table::HTML 58/s 5664% 2841% 1958% 488% 270% 252% 135% 82% 76% 52% 23% 17% -- -41% -41% -54% -64% -72% -73% -82% -82%
Text::MarkdownTable 70/s 9700% 4900% 3400% 900% 530% 500% 300% 210% 200% 160% 110% 100% 70% -- 0% -21% -40% -54% -55% -70% -70%
Text::Table 80/s 9700% 4900% 3400% 900% 530% 500% 300% 210% 200% 160% 110% 100% 70% 0% -- -21% -40% -54% -55% -70% -70%
Text::Table::HTML::DataTables 130/s 12464% 6310% 4387% 1182% 707% 669% 412% 297% 284% 233% 169% 156% 117% 28% 28% -- -23% -41% -42% -61% -61%
Text::Table::Org 200/s 16233% 8233% 5733% 1566% 950% 900% 566% 416% 400% 333% 250% 233% 183% 66% 66% 30% -- -23% -25% -50% -50%
Text::Table::TinyBorderStyle 220/s 21204% 10769% 7508% 2073% 1269% 1204% 769% 573% 552% 465% 356% 334% 269% 117% 117% 69% 30% -- -2% -34% -34%
Text::Table::CSV 220/s 21677% 11011% 7677% 2122% 1300% 1233% 788% 588% 566% 477% 366% 344% 277% 122% 122% 73% 33% 2% -- -33% -33%
Text::Table::Any 300/s 32566% 16566% 11566% 3233% 2000% 1900% 1233% 933% 900% 766% 600% 566% 466% 233% 233% 160% 100% 53% 50% -- 0%
Text::Table::Sprintf 300/s 32566% 16566% 11566% 3233% 2000% 1900% 1233% 933% 900% 766% 600% 566% 466% 233% 233% 160% 100% 53% 50% 0% --
Legends:
Text::ANSITable: participant=Text::ANSITable
Text::ASCIITable: participant=Text::ASCIITable
Text::FormatTable: participant=Text::FormatTable
Text::MarkdownTable: participant=Text::MarkdownTable
Text::SimpleTable: participant=Text::SimpleTable
Text::Table: participant=Text::Table
Text::Table::Any: participant=Text::Table::Any
Text::Table::CSV: participant=Text::Table::CSV
Text::Table::HTML: participant=Text::Table::HTML
Text::Table::HTML::DataTables: participant=Text::Table::HTML::DataTables
Text::Table::Manifold: participant=Text::Table::Manifold
Text::Table::More: participant=Text::Table::More
Text::Table::Org: participant=Text::Table::Org
Text::Table::Sprintf: participant=Text::Table::Sprintf
Text::Table::Tiny: participant=Text::Table::Tiny
Text::Table::TinyBorderStyle: participant=Text::Table::TinyBorderStyle
Text::Table::TinyColor: participant=Text::Table::TinyColor
Text::Table::TinyColorWide: participant=Text::Table::TinyColorWide
Text::Table::TinyWide: participant=Text::Table::TinyWide
Text::TabularDisplay: participant=Text::TabularDisplay
Text::UnicodeBox::Table: participant=Text::UnicodeBox::Table
#table2#
{dataset=>"long (3x300)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| participant | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest | errors | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| Text::UnicodeBox::Table | 8.1 | 120 | 0.00% | 36473.49% | 0.00084 | 20 |
| Text::Table::More | 20 | 60 | 120.32% | 16500.15% | 0.00079 | 20 |
| Text::ANSITable | 19 | 52 | 138.95% | 15205.67% | 0.0005 | 20 |
| Text::ASCIITable | 100 | 10 | 1178.21% | 2761.30% | 0.00019 | 21 |
| Text::FormatTable | 100 | 8 | 1406.88% | 2327.10% | 0.00021 | 20 |
| Text::Table::TinyColorWide | 160 | 6.1 | 1935.67% | 1696.63% | 4.1e-05 | 20 |
| Text::Table::TinyWide | 220 | 4.5 | 2658.16% | 1226.01% | 3.3e-05 | 21 |
| Text::SimpleTable | 280 | 3.5 | 3421.37% | 938.61% | 3.3e-05 | 20 |
| Text::MarkdownTable | 300 | 3 | 4092.38% | 772.38% | 7.9e-05 | 20 |
| Text::Table::Manifold | 340 | 2.9 | 4103.12% | 770.15% | 1.4e-05 | 20 |
| Text::TabularDisplay | 350 | 2.9 | 4220.60% | 746.49% | 1.5e-05 | 20 |
| Text::Table::Tiny | 370 | 2.7 | 4431.41% | 707.11% | 2.2e-05 | 20 |
| Text::Table | 400 | 3 | 4703.50% | 661.39% | 6.6e-05 | 20 |
| Text::Table::TinyColor | 610 | 1.6 | 7411.08% | 386.93% | 2.2e-06 | 20 |
| Text::Table::HTML | 660 | 1.5 | 8088.89% | 346.62% | 2.5e-06 | 20 |
| Text::Table::HTML::DataTables | 1000 | 0.98 | 12537.94% | 189.39% | 1.4e-06 | 20 |
| Text::Table::TinyBorderStyle | 1300 | 0.75 | 16280.36% | 123.28% | 2.7e-06 | 20 |
| Text::Table::Org | 1700 | 0.59 | 20844.22% | 74.62% | 1.1e-06 | 20 |
| Text::Table::CSV | 1700 | 0.58 | 21345.46% | 70.54% | 1.7e-06 | 21 |
| Text::Table::Any | 2600 | 0.39 | 31913.18% | 14.25% | 3.1e-06 | 21 |
| Text::Table::Sprintf | 2960 | 0.338 | 36473.49% | 0.00% | 5.3e-08 | 20 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::Table::More Text::ANSITable Text::ASCIITable Text::FormatTable Text::Table::TinyColorWide Text::Table::TinyWide Text::SimpleTable Text::MarkdownTable Text::Table Text::Table::Manifold Text::TabularDisplay Text::Table::Tiny Text::Table::TinyColor Text::Table::HTML Text::Table::HTML::DataTables Text::Table::TinyBorderStyle Text::Table::Org Text::Table::CSV Text::Table::Any Text::Table::Sprintf
Text::UnicodeBox::Table 8.1/s -- -50% -56% -91% -93% -94% -96% -97% -97% -97% -97% -97% -97% -98% -98% -99% -99% -99% -99% -99% -99%
Text::Table::More 20/s 100% -- -13% -83% -86% -89% -92% -94% -95% -95% -95% -95% -95% -97% -97% -98% -98% -99% -99% -99% -99%
Text::ANSITable 19/s 130% 15% -- -80% -84% -88% -91% -93% -94% -94% -94% -94% -94% -96% -97% -98% -98% -98% -98% -99% -99%
Text::ASCIITable 100/s 1100% 500% 420% -- -19% -39% -55% -65% -70% -70% -71% -71% -73% -84% -85% -90% -92% -94% -94% -96% -96%
Text::FormatTable 100/s 1400% 650% 550% 25% -- -23% -43% -56% -62% -62% -63% -63% -66% -80% -81% -87% -90% -92% -92% -95% -95%
Text::Table::TinyColorWide 160/s 1867% 883% 752% 63% 31% -- -26% -42% -50% -50% -52% -52% -55% -73% -75% -83% -87% -90% -90% -93% -94%
Text::Table::TinyWide 220/s 2566% 1233% 1055% 122% 77% 35% -- -22% -33% -33% -35% -35% -39% -64% -66% -78% -83% -86% -87% -91% -92%
Text::SimpleTable 280/s 3328% 1614% 1385% 185% 128% 74% 28% -- -14% -14% -17% -17% -22% -54% -57% -72% -78% -83% -83% -88% -90%
Text::MarkdownTable 300/s 3900% 1900% 1633% 233% 166% 103% 50% 16% -- 0% -3% -3% -9% -46% -50% -67% -75% -80% -80% -87% -88%
Text::Table 400/s 3900% 1900% 1633% 233% 166% 103% 50% 16% 0% -- -3% -3% -9% -46% -50% -67% -75% -80% -80% -87% -88%
Text::Table::Manifold 340/s 4037% 1968% 1693% 244% 175% 110% 55% 20% 3% 3% -- 0% -6% -44% -48% -66% -74% -79% -80% -86% -88%
Text::TabularDisplay 350/s 4037% 1968% 1693% 244% 175% 110% 55% 20% 3% 3% 0% -- -6% -44% -48% -66% -74% -79% -80% -86% -88%
Text::Table::Tiny 370/s 4344% 2122% 1825% 270% 196% 125% 66% 29% 11% 11% 7% 7% -- -40% -44% -63% -72% -78% -78% -85% -87%
Text::Table::TinyColor 610/s 7400% 3650% 3150% 525% 400% 281% 181% 118% 87% 87% 81% 81% 68% -- -6% -38% -53% -63% -63% -75% -78%
Text::Table::HTML 660/s 7900% 3900% 3366% 566% 433% 306% 200% 133% 100% 100% 93% 93% 80% 6% -- -34% -50% -60% -61% -74% -77%
Text::Table::HTML::DataTables 1000/s 12144% 6022% 5206% 920% 716% 522% 359% 257% 206% 206% 195% 195% 175% 63% 53% -- -23% -39% -40% -60% -65%
Text::Table::TinyBorderStyle 1300/s 15900% 7900% 6833% 1233% 966% 713% 500% 366% 300% 300% 286% 286% 260% 113% 100% 30% -- -21% -22% -48% -54%
Text::Table::Org 1700/s 20238% 10069% 8713% 1594% 1255% 933% 662% 493% 408% 408% 391% 391% 357% 171% 154% 66% 27% -- -1% -33% -42%
Text::Table::CSV 1700/s 20589% 10244% 8865% 1624% 1279% 951% 675% 503% 417% 417% 400% 400% 365% 175% 158% 68% 29% 1% -- -32% -41%
Text::Table::Any 2600/s 30669% 15284% 13233% 2464% 1951% 1464% 1053% 797% 669% 669% 643% 643% 592% 310% 284% 151% 92% 51% 48% -- -13%
Text::Table::Sprintf 2960/s 35402% 17651% 15284% 2858% 2266% 1704% 1231% 935% 787% 787% 757% 757% 698% 373% 343% 189% 121% 74% 71% 15% --
Legends:
Text::ANSITable: participant=Text::ANSITable
Text::ASCIITable: participant=Text::ASCIITable
Text::FormatTable: participant=Text::FormatTable
Text::MarkdownTable: participant=Text::MarkdownTable
Text::SimpleTable: participant=Text::SimpleTable
Text::Table: participant=Text::Table
Text::Table::Any: participant=Text::Table::Any
Text::Table::CSV: participant=Text::Table::CSV
Text::Table::HTML: participant=Text::Table::HTML
Text::Table::HTML::DataTables: participant=Text::Table::HTML::DataTables
Text::Table::Manifold: participant=Text::Table::Manifold
Text::Table::More: participant=Text::Table::More
Text::Table::Org: participant=Text::Table::Org
Text::Table::Sprintf: participant=Text::Table::Sprintf
Text::Table::Tiny: participant=Text::Table::Tiny
Text::Table::TinyBorderStyle: participant=Text::Table::TinyBorderStyle
Text::Table::TinyColor: participant=Text::Table::TinyColor
Text::Table::TinyColorWide: participant=Text::Table::TinyColorWide
Text::Table::TinyWide: participant=Text::Table::TinyWide
Text::TabularDisplay: participant=Text::TabularDisplay
Text::UnicodeBox::Table: participant=Text::UnicodeBox::Table
#table3#
{dataset=>"small (3x5)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| participant | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest | errors | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| Text::UnicodeBox::Table | 200 | 6 | 0.00% | 57200.69% | 0.00016 | 20 |
| Text::ANSITable | 700 | 1.4 | 327.06% | 13317.43% | 5e-06 | 21 |
| Text::Table::More | 960 | 1 | 481.52% | 9753.56% | 3.5e-06 | 24 |
| Text::Table::TinyBorderStyle | 3000 | 0.3 | 1817.31% | 2888.60% | 7.1e-06 | 20 |
| Text::ASCIITable | 4000 | 0.2 | 2604.90% | 2018.40% | 3.1e-06 | 20 |
| Text::Table | 6400 | 0.16 | 3764.07% | 1382.91% | 8.8e-07 | 21 |
| Text::FormatTable | 6900 | 0.14 | 4098.28% | 1264.86% | 2.1e-07 | 20 |
| Text::Table::Manifold | 7600 | 0.13 | 4501.95% | 1145.14% | 4.8e-07 | 20 |
| Text::Table::TinyColorWide | 7900 | 0.13 | 4692.26% | 1095.69% | 2.1e-07 | 21 |
| Text::SimpleTable | 10000 | 0.09 | 6693.33% | 743.48% | 1.9e-06 | 22 |
| Text::Table::TinyWide | 11200 | 0.089 | 6730.07% | 738.95% | 8e-08 | 20 |
| Text::MarkdownTable | 12000 | 0.084 | 7176.55% | 687.47% | 4.5e-07 | 20 |
| Text::Table::Tiny | 10000 | 0.08 | 7941.48% | 612.56% | 1.1e-06 | 20 |
| Text::Table::HTML::DataTables | 16000 | 0.064 | 9325.07% | 507.96% | 9.9e-08 | 23 |
| Text::TabularDisplay | 15600 | 0.064 | 9401.21% | 503.09% | 2.5e-08 | 23 |
| Text::Table::TinyColor | 24000 | 0.0416 | 14492.65% | 292.67% | 4e-08 | 20 |
| Text::Table::HTML | 32106.5 | 0.0311463 | 19411.77% | 193.67% | 0 | 20 |
| Text::Table::Org | 52000 | 0.019 | 31554.46% | 81.02% | 2.7e-08 | 20 |
| Text::Table::CSV | 78700 | 0.0127 | 47736.28% | 19.78% | 5.8e-09 | 26 |
| Text::Table::Any | 81700 | 0.0122 | 49565.77% | 15.37% | 3.2e-09 | 22 |
| Text::Table::Sprintf | 94000 | 0.011 | 57200.69% | 0.00% | 1.3e-08 | 20 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::ANSITable Text::Table::More Text::Table::TinyBorderStyle Text::ASCIITable Text::Table Text::FormatTable Text::Table::Manifold Text::Table::TinyColorWide Text::SimpleTable Text::Table::TinyWide Text::MarkdownTable Text::Table::Tiny Text::Table::HTML::DataTables Text::TabularDisplay Text::Table::TinyColor Text::Table::HTML Text::Table::Org Text::Table::CSV Text::Table::Any Text::Table::Sprintf
Text::UnicodeBox::Table 200/s -- -76% -83% -95% -96% -97% -97% -97% -97% -98% -98% -98% -98% -98% -98% -99% -99% -99% -99% -99% -99%
Text::ANSITable 700/s 328% -- -28% -78% -85% -88% -90% -90% -90% -93% -93% -94% -94% -95% -95% -97% -97% -98% -99% -99% -99%
Text::Table::More 960/s 500% 39% -- -70% -80% -84% -86% -87% -87% -91% -91% -91% -92% -93% -93% -95% -96% -98% -98% -98% -98%
Text::Table::TinyBorderStyle 3000/s 1900% 366% 233% -- -33% -46% -53% -56% -56% -70% -70% -72% -73% -78% -78% -86% -89% -93% -95% -95% -96%
Text::ASCIITable 4000/s 2900% 599% 400% 49% -- -20% -29% -35% -35% -55% -55% -58% -60% -68% -68% -79% -84% -90% -93% -93% -94%
Text::Table 6400/s 3650% 775% 525% 87% 25% -- -12% -18% -18% -43% -44% -47% -50% -60% -60% -74% -80% -88% -92% -92% -93%
Text::FormatTable 6900/s 4185% 899% 614% 114% 42% 14% -- -7% -7% -35% -36% -40% -42% -54% -54% -70% -77% -86% -90% -91% -92%
Text::Table::Manifold 7600/s 4515% 976% 669% 130% 53% 23% 7% -- 0% -30% -31% -35% -38% -50% -50% -68% -76% -85% -90% -90% -91%
Text::Table::TinyColorWide 7900/s 4515% 976% 669% 130% 53% 23% 7% 0% -- -30% -31% -35% -38% -50% -50% -68% -76% -85% -90% -90% -91%
Text::SimpleTable 10000/s 6566% 1455% 1011% 233% 122% 77% 55% 44% 44% -- -1% -6% -11% -28% -28% -53% -65% -78% -85% -86% -87%
Text::Table::TinyWide 11200/s 6641% 1473% 1023% 237% 124% 79% 57% 46% 46% 1% -- -5% -10% -28% -28% -53% -65% -78% -85% -86% -87%
Text::MarkdownTable 12000/s 7042% 1566% 1090% 257% 138% 90% 66% 54% 54% 7% 5% -- -4% -23% -23% -50% -62% -77% -84% -85% -86%
Text::Table::Tiny 10000/s 7400% 1650% 1150% 275% 150% 100% 75% 62% 62% 12% 11% 5% -- -19% -19% -48% -61% -76% -84% -84% -86%
Text::Table::HTML::DataTables 16000/s 9275% 2087% 1462% 368% 212% 150% 118% 103% 103% 40% 39% 31% 25% -- 0% -35% -51% -70% -80% -80% -82%
Text::TabularDisplay 15600/s 9275% 2087% 1462% 368% 212% 150% 118% 103% 103% 40% 39% 31% 25% 0% -- -35% -51% -70% -80% -80% -82%
Text::Table::TinyColor 24000/s 14323% 3265% 2303% 621% 380% 284% 236% 212% 212% 116% 113% 101% 92% 53% 53% -- -25% -54% -69% -70% -73%
Text::Table::HTML 32106.5/s 19163% 4394% 3110% 863% 542% 413% 349% 317% 317% 188% 185% 169% 156% 105% 105% 33% -- -38% -59% -60% -64%
Text::Table::Org 52000/s 31478% 7268% 5163% 1478% 952% 742% 636% 584% 584% 373% 368% 342% 321% 236% 236% 118% 63% -- -33% -35% -42%
Text::Table::CSV 78700/s 47144% 10923% 7774% 2262% 1474% 1159% 1002% 923% 923% 608% 600% 561% 529% 403% 403% 227% 145% 49% -- -3% -13%
Text::Table::Any 81700/s 49080% 11375% 8096% 2359% 1539% 1211% 1047% 965% 965% 637% 629% 588% 555% 424% 424% 240% 155% 55% 4% -- -9%
Text::Table::Sprintf 94000/s 54445% 12627% 8990% 2627% 1718% 1354% 1172% 1081% 1081% 718% 709% 663% 627% 481% 481% 278% 183% 72% 15% 10% --
Legends:
Text::ANSITable: participant=Text::ANSITable
Text::ASCIITable: participant=Text::ASCIITable
Text::FormatTable: participant=Text::FormatTable
Text::MarkdownTable: participant=Text::MarkdownTable
Text::SimpleTable: participant=Text::SimpleTable
Text::Table: participant=Text::Table
Text::Table::Any: participant=Text::Table::Any
Text::Table::CSV: participant=Text::Table::CSV
Text::Table::HTML: participant=Text::Table::HTML
Text::Table::HTML::DataTables: participant=Text::Table::HTML::DataTables
Text::Table::Manifold: participant=Text::Table::Manifold
Text::Table::More: participant=Text::Table::More
Text::Table::Org: participant=Text::Table::Org
Text::Table::Sprintf: participant=Text::Table::Sprintf
Text::Table::Tiny: participant=Text::Table::Tiny
Text::Table::TinyBorderStyle: participant=Text::Table::TinyBorderStyle
Text::Table::TinyColor: participant=Text::Table::TinyColor
Text::Table::TinyColorWide: participant=Text::Table::TinyColorWide
Text::Table::TinyWide: participant=Text::Table::TinyWide
Text::TabularDisplay: participant=Text::TabularDisplay
Text::UnicodeBox::Table: participant=Text::UnicodeBox::Table
#table4#
{dataset=>"tiny (1x1)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| participant | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest | errors | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| Text::UnicodeBox::Table | 400 | 3 | 0.00% | 76394.30% | 8.4e-05 | 20 |
| Text::ANSITable | 2200 | 0.45 | 491.32% | 12836.29% | 6.4e-07 | 20 |
| Text::Table::More | 3200 | 0.31 | 739.15% | 9015.70% | 9.1e-07 | 20 |
| Text::Table::TinyBorderStyle | 4500 | 0.22 | 1078.26% | 6392.13% | 1.3e-06 | 22 |
| Text::Table::Manifold | 10000 | 0.09 | 2969.15% | 2392.36% | 1.5e-06 | 20 |
| Text::FormatTable | 10000 | 0.07 | 3590.40% | 1972.79% | 7.7e-07 | 20 |
| Text::ASCIITable | 10000 | 0.07 | 3819.94% | 1851.41% | 9.9e-07 | 20 |
| Text::Table | 20000 | 0.05 | 4900.21% | 1429.82% | 9.6e-07 | 20 |
| Text::Table::HTML::DataTables | 21000 | 0.048 | 5434.33% | 1282.18% | 1.2e-07 | 20 |
| Text::MarkdownTable | 20000 | 0.05 | 5697.87% | 1219.35% | 8.9e-07 | 20 |
| Text::Table::TinyColorWide | 45000 | 0.022 | 11759.61% | 545.00% | 2.6e-08 | 21 |
| Text::Table::Tiny | 52000 | 0.019 | 13686.75% | 454.84% | 6e-08 | 20 |
| Text::SimpleTable | 57000 | 0.017 | 14982.89% | 407.16% | 1.7e-07 | 20 |
| Text::Table::TinyWide | 58000 | 0.017 | 15207.88% | 399.71% | 7.8e-08 | 21 |
| Text::TabularDisplay | 62000 | 0.016 | 16326.67% | 365.67% | 1.8e-08 | 24 |
| Text::Table::TinyColor | 93000 | 0.011 | 24400.42% | 212.22% | 1.3e-08 | 20 |
| Text::Table::Any | 100000 | 0.01 | 25184.05% | 202.54% | 5e-07 | 20 |
| Text::Table::Org | 140000 | 0.007 | 37466.60% | 103.62% | 1.3e-08 | 20 |
| Text::Table::HTML | 157000 | 0.00636 | 41389.63% | 84.37% | 2.6e-09 | 32 |
| Text::Table::Sprintf | 300000 | 0.004 | 67320.30% | 13.46% | 4.8e-08 | 20 |
| Text::Table::CSV | 290000 | 0.0034 | 76394.30% | 0.00% | 8.3e-09 | 20 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::ANSITable Text::Table::More Text::Table::TinyBorderStyle Text::Table::Manifold Text::FormatTable Text::ASCIITable Text::Table Text::MarkdownTable Text::Table::HTML::DataTables Text::Table::TinyColorWide Text::Table::Tiny Text::SimpleTable Text::Table::TinyWide Text::TabularDisplay Text::Table::TinyColor Text::Table::Any Text::Table::Org Text::Table::HTML Text::Table::Sprintf Text::Table::CSV
Text::UnicodeBox::Table 400/s -- -85% -89% -92% -97% -97% -97% -98% -98% -98% -99% -99% -99% -99% -99% -99% -99% -99% -99% -99% -99%
Text::ANSITable 2200/s 566% -- -31% -51% -80% -84% -84% -88% -88% -89% -95% -95% -96% -96% -96% -97% -97% -98% -98% -99% -99%
Text::Table::More 3200/s 867% 45% -- -29% -70% -77% -77% -83% -83% -84% -92% -93% -94% -94% -94% -96% -96% -97% -97% -98% -98%
Text::Table::TinyBorderStyle 4500/s 1263% 104% 40% -- -59% -68% -68% -77% -77% -78% -90% -91% -92% -92% -92% -95% -95% -96% -97% -98% -98%
Text::Table::Manifold 10000/s 3233% 400% 244% 144% -- -22% -22% -44% -44% -46% -75% -78% -81% -81% -82% -87% -88% -92% -92% -95% -96%
Text::FormatTable 10000/s 4185% 542% 342% 214% 28% -- 0% -28% -28% -31% -68% -72% -75% -75% -77% -84% -85% -90% -90% -94% -95%
Text::ASCIITable 10000/s 4185% 542% 342% 214% 28% 0% -- -28% -28% -31% -68% -72% -75% -75% -77% -84% -85% -90% -90% -94% -95%
Text::Table 20000/s 5900% 800% 519% 339% 79% 40% 40% -- 0% -4% -56% -62% -65% -65% -68% -78% -80% -86% -87% -92% -93%
Text::MarkdownTable 20000/s 5900% 800% 519% 339% 79% 40% 40% 0% -- -4% -56% -62% -65% -65% -68% -78% -80% -86% -87% -92% -93%
Text::Table::HTML::DataTables 21000/s 6150% 837% 545% 358% 87% 45% 45% 4% 4% -- -54% -60% -64% -64% -66% -77% -79% -85% -86% -91% -92%
Text::Table::TinyColorWide 45000/s 13536% 1945% 1309% 900% 309% 218% 218% 127% 127% 118% -- -13% -22% -22% -27% -50% -54% -68% -71% -81% -84%
Text::Table::Tiny 52000/s 15689% 2268% 1531% 1057% 373% 268% 268% 163% 163% 152% 15% -- -10% -10% -15% -42% -47% -63% -66% -78% -82%
Text::SimpleTable 57000/s 17547% 2547% 1723% 1194% 429% 311% 311% 194% 194% 182% 29% 11% -- 0% -5% -35% -41% -58% -62% -76% -80%
Text::Table::TinyWide 58000/s 17547% 2547% 1723% 1194% 429% 311% 311% 194% 194% 182% 29% 11% 0% -- -5% -35% -41% -58% -62% -76% -80%
Text::TabularDisplay 62000/s 18650% 2712% 1837% 1275% 462% 337% 337% 212% 212% 200% 37% 18% 6% 6% -- -31% -37% -56% -60% -75% -78%
Text::Table::TinyColor 93000/s 27172% 3990% 2718% 1900% 718% 536% 536% 354% 354% 336% 100% 72% 54% 54% 45% -- -9% -36% -42% -63% -69%
Text::Table::Any 100000/s 29900% 4400% 3000% 2100% 800% 600% 600% 400% 400% 380% 119% 89% 70% 70% 60% 9% -- -30% -36% -60% -66%
Text::Table::Org 140000/s 42757% 6328% 4328% 3042% 1185% 900% 900% 614% 614% 585% 214% 171% 142% 142% 128% 57% 42% -- -9% -42% -51%
Text::Table::HTML 157000/s 47069% 6975% 4774% 3359% 1315% 1000% 1000% 686% 686% 654% 245% 198% 167% 167% 151% 72% 57% 10% -- -37% -46%
Text::Table::Sprintf 300000/s 74900% 11150% 7650% 5400% 2150% 1650% 1650% 1150% 1150% 1100% 450% 375% 325% 325% 300% 175% 150% 75% 59% -- -15%
Text::Table::CSV 290000/s 88135% 13135% 9017% 6370% 2547% 1958% 1958% 1370% 1370% 1311% 547% 458% 400% 400% 370% 223% 194% 105% 87% 17% --
Legends:
Text::ANSITable: participant=Text::ANSITable
Text::ASCIITable: participant=Text::ASCIITable
Text::FormatTable: participant=Text::FormatTable
Text::MarkdownTable: participant=Text::MarkdownTable
Text::SimpleTable: participant=Text::SimpleTable
Text::Table: participant=Text::Table
Text::Table::Any: participant=Text::Table::Any
Text::Table::CSV: participant=Text::Table::CSV
Text::Table::HTML: participant=Text::Table::HTML
Text::Table::HTML::DataTables: participant=Text::Table::HTML::DataTables
Text::Table::Manifold: participant=Text::Table::Manifold
Text::Table::More: participant=Text::Table::More
Text::Table::Org: participant=Text::Table::Org
Text::Table::Sprintf: participant=Text::Table::Sprintf
Text::Table::Tiny: participant=Text::Table::Tiny
Text::Table::TinyBorderStyle: participant=Text::Table::TinyBorderStyle
Text::Table::TinyColor: participant=Text::Table::TinyColor
Text::Table::TinyColorWide: participant=Text::Table::TinyColorWide
Text::Table::TinyWide: participant=Text::Table::TinyWide
Text::TabularDisplay: participant=Text::TabularDisplay
Text::UnicodeBox::Table: participant=Text::UnicodeBox::Table
#table5#
{dataset=>"wide (30x5)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| participant | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest | errors | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| Text::UnicodeBox::Table | 38 | 27 | 0.00% | 40512.32% | 0.0002 | 21 |
| Text::Table::More | 70 | 10 | 86.60% | 21664.71% | 0.00051 | 20 |
| Text::ANSITable | 94 | 11 | 150.42% | 16117.93% | 2.1e-05 | 20 |
| Text::ASCIITable | 400 | 2 | 1076.87% | 3350.89% | 4.4e-05 | 20 |
| Text::FormatTable | 690 | 1.4 | 1735.53% | 2112.56% | 5e-06 | 20 |
| Text::Table::TinyColorWide | 840 | 1.2 | 2128.10% | 1722.73% | 5.6e-06 | 20 |
| Text::Table::TinyBorderStyle | 800 | 1 | 2132.79% | 1718.90% | 3.7e-05 | 21 |
| Text::Table | 1000 | 1 | 2485.92% | 1470.52% | 2.7e-05 | 21 |
| Text::Table::TinyWide | 1200 | 0.81 | 3185.19% | 1136.22% | 1.3e-06 | 20 |
| Text::Table::Manifold | 1600 | 0.63 | 4119.82% | 862.42% | 3.6e-06 | 20 |
| Text::SimpleTable | 1600 | 0.63 | 4131.88% | 859.68% | 1.8e-06 | 20 |
| Text::Table::Tiny | 1900 | 0.53 | 4880.95% | 715.35% | 3.1e-06 | 21 |
| Text::TabularDisplay | 2300 | 0.43 | 6043.25% | 561.09% | 1.4e-06 | 20 |
| Text::Table::TinyColor | 3000 | 0.33 | 7955.73% | 404.14% | 4.3e-07 | 20 |
| Text::MarkdownTable | 3300 | 0.3 | 8706.27% | 361.17% | 1.8e-06 | 20 |
| Text::Table::HTML | 3720 | 0.269 | 9786.13% | 310.80% | 2.1e-07 | 20 |
| Text::Table::HTML::DataTables | 5000 | 0.2 | 13199.23% | 205.37% | 4.3e-07 | 20 |
| Text::Table::Org | 8600 | 0.12 | 22757.70% | 77.67% | 2.1e-07 | 20 |
| Text::Table::CSV | 11800 | 0.0848 | 31278.91% | 29.43% | 2.3e-08 | 26 |
| Text::Table::Any | 15000 | 0.069 | 38641.46% | 4.83% | 9.4e-08 | 26 |
| Text::Table::Sprintf | 15300 | 0.0655 | 40512.32% | 0.00% | 2.6e-08 | 21 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::ANSITable Text::Table::More Text::ASCIITable Text::FormatTable Text::Table::TinyColorWide Text::Table::TinyBorderStyle Text::Table Text::Table::TinyWide Text::Table::Manifold Text::SimpleTable Text::Table::Tiny Text::TabularDisplay Text::Table::TinyColor Text::MarkdownTable Text::Table::HTML Text::Table::HTML::DataTables Text::Table::Org Text::Table::CSV Text::Table::Any Text::Table::Sprintf
Text::UnicodeBox::Table 38/s -- -59% -62% -92% -94% -95% -96% -96% -97% -97% -97% -98% -98% -98% -98% -99% -99% -99% -99% -99% -99%
Text::ANSITable 94/s 145% -- -9% -81% -87% -89% -90% -90% -92% -94% -94% -95% -96% -97% -97% -97% -98% -98% -99% -99% -99%
Text::Table::More 70/s 170% 10% -- -80% -86% -88% -90% -90% -91% -93% -93% -94% -95% -96% -97% -97% -98% -98% -99% -99% -99%
Text::ASCIITable 400/s 1250% 450% 400% -- -30% -40% -50% -50% -59% -68% -68% -73% -78% -83% -85% -86% -90% -94% -95% -96% -96%
Text::FormatTable 690/s 1828% 685% 614% 42% -- -14% -28% -28% -42% -55% -55% -62% -69% -76% -78% -80% -85% -91% -93% -95% -95%
Text::Table::TinyColorWide 840/s 2150% 816% 733% 66% 16% -- -16% -16% -32% -47% -47% -55% -64% -72% -75% -77% -83% -90% -92% -94% -94%
Text::Table::TinyBorderStyle 800/s 2600% 1000% 900% 100% 39% 19% -- 0% -18% -37% -37% -47% -57% -67% -70% -73% -80% -88% -91% -93% -93%
Text::Table 1000/s 2600% 1000% 900% 100% 39% 19% 0% -- -18% -37% -37% -47% -57% -67% -70% -73% -80% -88% -91% -93% -93%
Text::Table::TinyWide 1200/s 3233% 1258% 1134% 146% 72% 48% 23% 23% -- -22% -22% -34% -46% -59% -62% -66% -75% -85% -89% -91% -91%
Text::Table::Manifold 1600/s 4185% 1646% 1487% 217% 122% 90% 58% 58% 28% -- 0% -15% -31% -47% -52% -57% -68% -80% -86% -89% -89%
Text::SimpleTable 1600/s 4185% 1646% 1487% 217% 122% 90% 58% 58% 28% 0% -- -15% -31% -47% -52% -57% -68% -80% -86% -89% -89%
Text::Table::Tiny 1900/s 4994% 1975% 1786% 277% 164% 126% 88% 88% 52% 18% 18% -- -18% -37% -43% -49% -62% -77% -84% -86% -87%
Text::TabularDisplay 2300/s 6179% 2458% 2225% 365% 225% 179% 132% 132% 88% 46% 46% 23% -- -23% -30% -37% -53% -72% -80% -83% -84%
Text::Table::TinyColor 3000/s 8081% 3233% 2930% 506% 324% 263% 203% 203% 145% 90% 90% 60% 30% -- -9% -18% -39% -63% -74% -79% -80%
Text::MarkdownTable 3300/s 8900% 3566% 3233% 566% 366% 300% 233% 233% 170% 110% 110% 76% 43% 10% -- -10% -33% -60% -71% -77% -78%
Text::Table::HTML 3720/s 9937% 3989% 3617% 643% 420% 346% 271% 271% 201% 134% 134% 97% 59% 22% 11% -- -25% -55% -68% -74% -75%
Text::Table::HTML::DataTables 5000/s 13400% 5400% 4900% 900% 599% 499% 400% 400% 305% 215% 215% 165% 114% 64% 49% 34% -- -40% -57% -65% -67%
Text::Table::Org 8600/s 22400% 9066% 8233% 1566% 1066% 900% 733% 733% 575% 425% 425% 341% 258% 175% 150% 124% 66% -- -29% -42% -45%
Text::Table::CSV 11800/s 31739% 12871% 11692% 2258% 1550% 1315% 1079% 1079% 855% 642% 642% 525% 407% 289% 253% 217% 135% 41% -- -18% -22%
Text::Table::Any 15000/s 39030% 15842% 14392% 2798% 1928% 1639% 1349% 1349% 1073% 813% 813% 668% 523% 378% 334% 289% 189% 73% 22% -- -5%
Text::Table::Sprintf 15300/s 41121% 16693% 15167% 2953% 2037% 1732% 1426% 1426% 1136% 861% 861% 709% 556% 403% 358% 310% 205% 83% 29% 5% --
Legends:
Text::ANSITable: participant=Text::ANSITable
Text::ASCIITable: participant=Text::ASCIITable
Text::FormatTable: participant=Text::FormatTable
Text::MarkdownTable: participant=Text::MarkdownTable
Text::SimpleTable: participant=Text::SimpleTable
Text::Table: participant=Text::Table
Text::Table::Any: participant=Text::Table::Any
Text::Table::CSV: participant=Text::Table::CSV
Text::Table::HTML: participant=Text::Table::HTML
Text::Table::HTML::DataTables: participant=Text::Table::HTML::DataTables
Text::Table::Manifold: participant=Text::Table::Manifold
Text::Table::More: participant=Text::Table::More
Text::Table::Org: participant=Text::Table::Org
Text::Table::Sprintf: participant=Text::Table::Sprintf
Text::Table::Tiny: participant=Text::Table::Tiny
Text::Table::TinyBorderStyle: participant=Text::Table::TinyBorderStyle
Text::Table::TinyColor: participant=Text::Table::TinyColor
Text::Table::TinyColorWide: participant=Text::Table::TinyColorWide
Text::Table::TinyWide: participant=Text::Table::TinyWide
Text::TabularDisplay: participant=Text::TabularDisplay
Text::UnicodeBox::Table: participant=Text::UnicodeBox::Table
Benchmark module startup overhead ("bencher --cpanmodules-module
TextTable --module-startup"):
#table6#
+-------------------------------+-----------+-------------------+-----------------------+-----------------------+-----------+---------+
| participant | time (ms) | mod_overhead_time | pct_faster_vs_slowest | pct_slower_vs_fastest | errors | samples |
+-------------------------------+-----------+-------------------+-----------------------+-----------------------+-----------+---------+
| Text::UnicodeBox::Table | 170 | 161.9 | 0.00% | 1964.19% | 0.00076 | 20 |
| Text::Table::Manifold | 94 | 85.9 | 78.43% | 1056.83% | 0.00068 | 20 |
| Text::MarkdownTable | 60 | 51.9 | 185.25% | 623.63% | 0.0026 | 20 |
| Text::ANSITable | 60 | 51.9 | 194.56% | 600.77% | 0.0011 | 20 |
| Text::Table::TinyColorWide | 35 | 26.9 | 380.86% | 329.27% | 0.00015 | 20 |
| Text::Table::TinyWide | 31 | 22.9 | 439.97% | 282.28% | 4.1e-05 | 21 |
| Text::Table | 30 | 21.9 | 448.34% | 276.44% | 0.0011 | 20 |
| Text::Table::More | 24 | 15.9 | 584.22% | 201.68% | 2.9e-05 | 20 |
| Text::Table::Tiny | 20 | 11.9 | 734.43% | 147.38% | 8.3e-05 | 20 |
| Text::ASCIITable | 19 | 10.9 | 762.11% | 139.44% | 0.00013 | 20 |
| Text::FormatTable | 18 | 9.9 | 823.19% | 123.59% | 0.00016 | 21 |
| Text::Table::TinyColor | 16 | 7.9 | 973.92% | 92.21% | 5.1e-05 | 24 |
| Text::Table::TinyBorderStyle | 10 | 1.9 | 1186.11% | 60.50% | 0.00015 | 20 |
| Text::Table::Any | 13 | 4.9 | 1237.81% | 54.30% | 3.8e-05 | 21 |
| Text::Table::HTML | 11 | 2.9 | 1372.11% | 40.22% | 9.2e-05 | 20 |
| Text::TabularDisplay | 11 | 2.9 | 1385.72% | 38.94% | 1.8e-05 | 20 |
| Text::SimpleTable | 11 | 2.9 | 1395.75% | 38.00% | 2.4e-05 | 20 |
| Text::Table::HTML::DataTables | 10.7 | 2.6 | 1472.30% | 31.29% | 1e-05 | 20 |
| Text::Table::Org | 10 | 1.9 | 1506.60% | 28.48% | 1.8e-05 | 20 |
| Text::Table::CSV | 9 | 0.9 | 1710.18% | 14.03% | 0.00014 | 20 |
| Text::Table::Sprintf | 8.5 | 0.4 | 1865.69% | 5.01% | 1.2e-05 | 20 |
| perl -e1 (baseline) | 8.1 | 0 | 1964.19% | 0.00% | 1.2e-05 | 20 |
+-------------------------------+-----------+-------------------+-----------------------+-----------------------+-----------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::Table::Manifold Text::MarkdownTable Text::ANSITable Text::Table::TinyColorWide Text::Table::TinyWide Text::Table Text::Table::More Text::Table::Tiny Text::ASCIITable Text::FormatTable Text::Table::TinyColor Text::Table::Any Text::Table::HTML Text::TabularDisplay Text::SimpleTable Text::Table::HTML::DataTables Text::Table::TinyBorderStyle Text::Table::Org Text::Table::CSV Text::Table::Sprintf perl -e1 (baseline)
Text::UnicodeBox::Table 5.9/s -- -44% -64% -64% -79% -81% -82% -85% -88% -88% -89% -90% -92% -93% -93% -93% -93% -94% -94% -94% -95% -95%
Text::Table::Manifold 10.6/s 80% -- -36% -36% -62% -67% -68% -74% -78% -79% -80% -82% -86% -88% -88% -88% -88% -89% -89% -90% -90% -91%
Text::MarkdownTable 16.7/s 183% 56% -- 0% -41% -48% -50% -60% -66% -68% -70% -73% -78% -81% -81% -81% -82% -83% -83% -85% -85% -86%
Text::ANSITable 16.7/s 183% 56% 0% -- -41% -48% -50% -60% -66% -68% -70% -73% -78% -81% -81% -81% -82% -83% -83% -85% -85% -86%
Text::Table::TinyColorWide 28.6/s 385% 168% 71% 71% -- -11% -14% -31% -42% -45% -48% -54% -62% -68% -68% -68% -69% -71% -71% -74% -75% -76%
Text::Table::TinyWide 32.3/s 448% 203% 93% 93% 12% -- -3% -22% -35% -38% -41% -48% -58% -64% -64% -64% -65% -67% -67% -70% -72% -73%
Text::Table 33.3/s 466% 213% 100% 100% 16% 3% -- -19% -33% -36% -40% -46% -56% -63% -63% -63% -64% -66% -66% -70% -71% -73%
Text::Table::More 41.7/s 608% 291% 150% 150% 45% 29% 25% -- -16% -20% -25% -33% -45% -54% -54% -54% -55% -58% -58% -62% -64% -66%
Text::Table::Tiny 50.0/s 750% 370% 200% 200% 75% 55% 50% 19% -- -5% -9% -19% -35% -44% -44% -44% -46% -50% -50% -55% -57% -59%
Text::ASCIITable 52.6/s 794% 394% 215% 215% 84% 63% 57% 26% 5% -- -5% -15% -31% -42% -42% -42% -43% -47% -47% -52% -55% -57%
Text::FormatTable 55.6/s 844% 422% 233% 233% 94% 72% 66% 33% 11% 5% -- -11% -27% -38% -38% -38% -40% -44% -44% -50% -52% -55%
Text::Table::TinyColor 62.5/s 962% 487% 275% 275% 118% 93% 87% 50% 25% 18% 12% -- -18% -31% -31% -31% -33% -37% -37% -43% -46% -49%
Text::Table::Any 76.9/s 1207% 623% 361% 361% 169% 138% 130% 84% 53% 46% 38% 23% -- -15% -15% -15% -17% -23% -23% -30% -34% -37%
Text::Table::HTML 90.9/s 1445% 754% 445% 445% 218% 181% 172% 118% 81% 72% 63% 45% 18% -- 0% 0% -2% -9% -9% -18% -22% -26%
Text::TabularDisplay 90.9/s 1445% 754% 445% 445% 218% 181% 172% 118% 81% 72% 63% 45% 18% 0% -- 0% -2% -9% -9% -18% -22% -26%
Text::SimpleTable 90.9/s 1445% 754% 445% 445% 218% 181% 172% 118% 81% 72% 63% 45% 18% 0% 0% -- -2% -9% -9% -18% -22% -26%
Text::Table::HTML::DataTables 93.5/s 1488% 778% 460% 460% 227% 189% 180% 124% 86% 77% 68% 49% 21% 2% 2% 2% -- -6% -6% -15% -20% -24%
Text::Table::TinyBorderStyle 100.0/s 1600% 840% 500% 500% 250% 210% 200% 140% 100% 89% 80% 60% 30% 10% 10% 10% 6% -- 0% -9% -15% -19%
Text::Table::Org 100.0/s 1600% 840% 500% 500% 250% 210% 200% 140% 100% 89% 80% 60% 30% 10% 10% 10% 6% 0% -- -9% -15% -19%
Text::Table::CSV 111.1/s 1788% 944% 566% 566% 288% 244% 233% 166% 122% 111% 100% 77% 44% 22% 22% 22% 18% 11% 11% -- -5% -10%
Text::Table::Sprintf 117.6/s 1900% 1005% 605% 605% 311% 264% 252% 182% 135% 123% 111% 88% 52% 29% 29% 29% 25% 17% 17% 5% -- -4%
perl -e1 (baseline) 123.5/s 1998% 1060% 640% 640% 332% 282% 270% 196% 146% 134% 122% 97% 60% 35% 35% 35% 32% 23% 23% 11% 4% --
Legends:
Text::ANSITable: mod_overhead_time=51.9 participant=Text::ANSITable
Text::ASCIITable: mod_overhead_time=10.9 participant=Text::ASCIITable
Text::FormatTable: mod_overhead_time=9.9 participant=Text::FormatTable
Text::MarkdownTable: mod_overhead_time=51.9 participant=Text::MarkdownTable
Text::SimpleTable: mod_overhead_time=2.9 participant=Text::SimpleTable
Text::Table: mod_overhead_time=21.9 participant=Text::Table
Text::Table::Any: mod_overhead_time=4.9 participant=Text::Table::Any
Text::Table::CSV: mod_overhead_time=0.9 participant=Text::Table::CSV
Text::Table::HTML: mod_overhead_time=2.9 participant=Text::Table::HTML
Text::Table::HTML::DataTables: mod_overhead_time=2.6 participant=Text::Table::HTML::DataTables
Text::Table::Manifold: mod_overhead_time=85.9 participant=Text::Table::Manifold
Text::Table::More: mod_overhead_time=15.9 participant=Text::Table::More
Text::Table::Org: mod_overhead_time=1.9 participant=Text::Table::Org
Text::Table::Sprintf: mod_overhead_time=0.4 participant=Text::Table::Sprintf
Text::Table::Tiny: mod_overhead_time=11.9 participant=Text::Table::Tiny
Text::Table::TinyBorderStyle: mod_overhead_time=1.9 participant=Text::Table::TinyBorderStyle
Text::Table::TinyColor: mod_overhead_time=7.9 participant=Text::Table::TinyColor
Text::Table::TinyColorWide: mod_overhead_time=26.9 participant=Text::Table::TinyColorWide
Text::Table::TinyWide: mod_overhead_time=22.9 participant=Text::Table::TinyWide
Text::TabularDisplay: mod_overhead_time=2.9 participant=Text::TabularDisplay
Text::UnicodeBox::Table: mod_overhead_time=161.9 participant=Text::UnicodeBox::Table
perl -e1 (baseline): mod_overhead_time=0 participant=perl -e1 (baseline)
To display as an interactive HTML table on a browser, you can add option
"--format html+datatables".
SAMPLE OUTPUTS
This section shows what the output is like for (some of the) modules:
* "Text::Table::Any"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
* "Text::SimpleTable"
.-----------+-----------+-----------.
| col1 | col2 | col3 |
+-----------+-----------+-----------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
'-----------+-----------+-----------'
* "Text::Table::Manifold"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
* "Text::ANSITable"
.--------+--------+--------.
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
`--------+--------+--------'
* "Text::ASCIITable"
.--------------------------.
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
'--------+--------+--------'
* "Text::FormatTable"
col1 |col2 |col3
row1.1|row1.2|row1.3
row2.1|row2.2|row2.3
row3.1|row3.2|row3.3
row4.1|row4.2|row4.3
row5.1|row5.2|row5.3
* "Text::MarkdownTable"
| col1 | col2 | col3 |
|--------|--------|--------|
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
* "Text::Table"
col1 col2 col3
row1.1 row1.2 row1.3
row2.1 row2.2 row2.3
row3.1 row3.2 row3.3
row4.1 row4.2 row4.3
row5.1 row5.2 row5.3
* "Text::Table::Tiny"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
* "Text::Table::TinyBorderStyle"
.--------+--------+--------.
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
`--------+--------+--------'
* "Text::Table::More"
.--------+--------+--------.
| col1 | col2 | col3 |
+========+========+========+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
`--------+--------+--------'
* "Text::Table::Sprintf"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
* "Text::Table::TinyColor"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
* "Text::Table::TinyColorWide"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
* "Text::Table::TinyWide"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
* "Text::Table::Org"
| col1 | col2 | col3 |
|--------+--------+--------|
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
* "Text::Table::CSV"
"col1","col2","col3"
"row1.1","row1.2","row1.3"
"row2.1","row2.2","row2.3"
"row3.1","row3.2","row3.3"
"row4.1","row4.2","row4.3"
"row5.1","row5.2","row5.3"
* "Text::Table::HTML"
<table>
<thead>
<tr><th>col1</th><th>col2</th><th>col3</th></tr>
</thead>
<tbody>
<tr><td>row1.1</td><td>row1.2</td><td>row1.3</td></tr>
<tr><td>row2.1</td><td>row2.2</td><td>row2.3</td></tr>
<tr><td>row3.1</td><td>row3.2</td><td>row3.3</td></tr>
<tr><td>row4.1</td><td>row4.2</td><td>row4.3</td></tr>
<tr><td>row5.1</td><td>row5.2</td><td>row5.3</td></tr>
</tbody>
</table>
* "Text::Table::HTML::DataTables"
<html>
<head>
<link rel="stylesheet" type="text/css" href="file:///home/u1/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/auto/share/dist/Text-Table-HTML-DataTables/datatables-1.10.22/datatables.css">
<script src="file:///home/u1/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/auto/share/dist/Text-Table-HTML-DataTables/jquery-2.2.4/jquery-2.2.4.min.js"></script>
<script src="file:///home/u1/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/auto/share/dist/Text-Table-HTML-DataTables/datatables-1.10.22/datatables.js"></script>
<script>var dt_opts = {"buttons":["colvis","print"],"dom":"lQfrtip"}; $(document).ready(function() { $("table").DataTable(dt_opts); $("select[name=DataTables_Table_0_length]").val(1000); $("select[name=DataTables_Table_0_length]").trigger("change"); });</script>
</head>
<body>
<table>
<thead>
<tr><th>col1</th><th>col2</th><th>col3</th></tr>
</thead>
<tbody>
<tr><td>row1.1</td><td>row1.2</td><td>row1.3</td></tr>
<tr><td>row2.1</td><td>row2.2</td><td>row2.3</td></tr>
<tr><td>row3.1</td><td>row3.2</td><td>row3.3</td></tr>
<tr><td>row4.1</td><td>row4.2</td><td>row4.3</td></tr>
<tr><td>row5.1</td><td>row5.2</td><td>row5.3</td></tr>
</tbody>
</table>
</body>
</html>
* "Text::TabularDisplay"
+--------+--------+--------+
| col1 | col2 | col3 |
+--------+--------+--------+
| row1.1 | row1.2 | row1.3 |
| row2.1 | row2.2 | row2.3 |
| row3.1 | row3.2 | row3.3 |
| row4.1 | row4.2 | row4.3 |
| row5.1 | row5.2 | row5.3 |
+--------+--------+--------+
FAQ
What is an Acme::CPANModules::* module?
An Acme::CPANModules::* module, like this module, contains just a list
of module names that share a common characteristics. It is a way to
categorize modules and document CPAN. See Acme::CPANModules for more
details.
What are ways to use this Acme::CPANModules module?
Aside from reading this Acme::CPANModules module's POD documentation,
you can install all the listed modules (entries) using cpanm-cpanmodules
script (from App::cpanm::cpanmodules distribution):
% cpanm-cpanmodules -n TextTable
Alternatively you can use the cpanmodules CLI (from App::cpanmodules
distribution):
% cpanmodules ls-entries TextTable | cpanm -n
or Acme::CM::Get:
% perl -MAcme::CM::Get=TextTable -E'say $_->{module} for @{ $LIST->{entries} }' | cpanm -n
or directly:
% perl -MAcme::CPANModules::TextTable -E'say $_->{module} for @{ $Acme::CPANModules::TextTable::LIST->{entries} }' | cpanm -n
This Acme::CPANModules module contains benchmark instructions. You can
run a benchmark for some/all the modules listed in this
Acme::CPANModules module using the bencher CLI (from Bencher
distribution):
% bencher --cpanmodules-module TextTable
This Acme::CPANModules module also helps lcpan produce a more meaningful
result for "lcpan related-mods" command when it comes to finding related
modules for the modules listed in this Acme::CPANModules module. See
App::lcpan::Cmd::related_mods for more details on how "related modules"
are found.
HOMEPAGE
Please visit the project's homepage at
<https://metacpan.org/release/Acme-CPANModules-TextTable>.
SOURCE
Source repository is at
<https://github.com/perlancar/perl-Acme-CPANModules-TextTable>.
SEE ALSO
Related lists: Acme::CPANModules::HTMLTable,
Acme::CPANModules::BrowsingTableInteractively.
Acme::CPANModules - about the Acme::CPANModules namespace
cpanmodules - CLI tool to let you browse/view the lists
AUTHOR
perlancar <perlancar@cpan.org>
CONTRIBUTING
To contribute, you can send patches by email/via RT, or send pull
requests on GitHub.
Most of the time, you don't need to build the distribution yourself. You
can simply modify the code, then test via:
% prove -l
If you want to build the distribution (e.g. to try to install it locally
on your system), you can install Dist::Zilla,
Dist::Zilla::PluginBundle::Author::PERLANCAR,
Pod::Weaver::PluginBundle::Author::PERLANCAR, and sometimes one or two
other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps
required beyond that are considered a bug and can be reported to me.
COPYRIGHT AND LICENSE
This software is copyright (c) 2023, 2021, 2020, 2019 by perlancar
<perlancar@cpan.org>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
BUGS
Please report any bugs or feature requests on the bugtracker website
<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Text
Table>
When submitting a bug or request, please include a test-file or a patch
to an existing test-file that illustrates the bug or desired feature.