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:

ACME::CPANMODULES ENTRIES

Text::Table::Any

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

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

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

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

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

Text::FormatTable

Author: TREY

Text::MarkdownTable

Author: VOJ

Text::Table

Author: SHLOMIF

Text::Table::Tiny

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

Text::Table::More

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

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

Text::Table::TinyColorWide

Author: PERLANCAR

Text::Table::TinyWide

Author: PERLANCAR

Text::Table::Org

Author: PERLANCAR

Text::Table::CSV

Author: PERLANCAR

Text::Table::HTML

Author: PERLANCAR

Text::Table::HTML::DataTables

Author: PERLANCAR

Text::TabularDisplay

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

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-TextTable

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.