NAME
Acme::CPANModules::TextTable - Modules that generate text tables
VERSION
This document describes version 0.014 of Acme::CPANModules::TextTable (from Perl distribution Acme-CPANModules-TextTable), released on 2023-02-16.
SYNOPSIS
To run benchmark with default option:
% bencher --cpanmodules-module TextTable
To run module startup overhead benchmark:
% bencher --module-startup --cpanmodules-module TextTable
For more options (dump scenario, list/include/exclude/add participants, list/include/exclude/add datasets, etc), see bencher or run bencher --help
.
DESCRIPTION
Currently excluded from this list are:
Text::SimpleTable::AutoWidth (wrapper to Text::SimpleTable);
Text::ASCIITable::EasyTable (wrapper to Text::ASCIITable);
ACME::CPANMODULES ENTRIES
- Text::Table::Any
-
Author: PERLANCAR
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::ANSITable 0.608
Text::ASCIITable 0.22
Text::FormatTable 1.03
Text::MarkdownTable 0.3.1
Text::Table 1.134
Text::Table::Tiny 1.02
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.009
Text::Table::HTML::DataTables 0.012
Text::TabularDisplay 1.38
BENCHMARK PARTICIPANTS
Text::Table::Any (perl_code)
Text::SimpleTable (perl_code)
Text::UnicodeBox::Table (perl_code)
Text::Table::Manifold (perl_code)
Text::ANSITable (perl_code)
Text::ASCIITable (perl_code)
Text::FormatTable (perl_code)
Text::MarkdownTable (perl_code)
Text::Table (perl_code)
Text::Table::Tiny (perl_code)
Text::Table::TinyBorderStyle (perl_code)
Text::Table::More (perl_code)
Text::Table::Sprintf (perl_code)
Text::Table::TinyColor (perl_code)
Text::Table::TinyColorWide (perl_code)
Text::Table::TinyWide (perl_code)
Text::Table::Org (perl_code)
Text::Table::CSV (perl_code)
Text::Table::HTML (perl_code)
Text::Table::HTML::DataTables (perl_code)
Text::TabularDisplay (perl_code)
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 | 990 | 0.00% | 39075.07% | 0.0093 | 20 |
| Text::ANSITable | 2.3 | 440 | 122.45% | 17511.06% | 0.001 | 20 |
| Text::Table::More | 2.9 | 350 | 183.78% | 13704.67% | 0.00074 | 20 |
| Text::ASCIITable | 12 | 86 | 1044.26% | 3323.61% | 0.00015 | 20 |
| Text::FormatTable | 17 | 59 | 1583.12% | 2227.53% | 0.00017 | 21 |
| Text::Table::TinyColorWide | 17 | 58 | 1601.03% | 2203.02% | 0.0001 | 20 |
| Text::Table::TinyWide | 24 | 41 | 2297.54% | 1533.97% | 7.2e-05 | 20 |
| Text::SimpleTable | 32 | 32 | 3016.17% | 1157.16% | 0.00011 | 20 |
| Text::Table::HTML | 35 | 29 | 3312.65% | 1047.94% | 6.5e-05 | 20 |
| Text::Table::Manifold | 39 | 26 | 3719.11% | 925.76% | 8.6e-05 | 20 |
| Text::Table::Tiny | 41 | 24 | 3964.21% | 863.90% | 8.3e-05 | 20 |
| Text::TabularDisplay | 47 | 21 | 4546.04% | 743.19% | 0.0002 | 20 |
| Text::Table::TinyColor | 62 | 16 | 5986.13% | 543.68% | 4.5e-05 | 20 |
| Text::MarkdownTable | 86 | 12 | 8370.09% | 362.51% | 2.4e-05 | 20 |
| Text::Table | 110 | 9.4 | 10414.16% | 272.59% | 3.3e-05 | 20 |
| Text::Table::HTML::DataTables | 130 | 7.9 | 12381.60% | 213.86% | 2.7e-05 | 20 |
| Text::Table::TinyBorderStyle | 220 | 4.5 | 21965.23% | 77.54% | 1.4e-05 | 20 |
| Text::Table::CSV | 230 | 4.4 | 22292.34% | 74.95% | 1.7e-05 | 20 |
| Text::Table::Org | 230 | 4.3 | 22710.59% | 71.74% | 2.1e-05 | 20 |
| Text::Table::Sprintf | 360 | 2.8 | 35801.17% | 9.12% | 1e-05 | 20 |
| Text::Table::Any | 400 | 2.5 | 39075.07% | 0.00% | 1.3e-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::HTML Text::Table::Manifold Text::Table::Tiny Text::TabularDisplay Text::Table::TinyColor Text::MarkdownTable Text::Table Text::Table::HTML::DataTables Text::Table::TinyBorderStyle Text::Table::CSV Text::Table::Org Text::Table::Sprintf Text::Table::Any
Text::UnicodeBox::Table 1/s -- -55% -64% -91% -94% -94% -95% -96% -97% -97% -97% -97% -98% -98% -99% -99% -99% -99% -99% -99% -99%
Text::ANSITable 2.3/s 125% -- -20% -80% -86% -86% -90% -92% -93% -94% -94% -95% -96% -97% -97% -98% -98% -99% -99% -99% -99%
Text::Table::More 2.9/s 182% 25% -- -75% -83% -83% -88% -90% -91% -92% -93% -94% -95% -96% -97% -97% -98% -98% -98% -99% -99%
Text::ASCIITable 12/s 1051% 411% 306% -- -31% -32% -52% -62% -66% -69% -72% -75% -81% -86% -89% -90% -94% -94% -95% -96% -97%
Text::FormatTable 17/s 1577% 645% 493% 45% -- -1% -30% -45% -50% -55% -59% -64% -72% -79% -84% -86% -92% -92% -92% -95% -95%
Text::Table::TinyColorWide 17/s 1606% 658% 503% 48% 1% -- -29% -44% -50% -55% -58% -63% -72% -79% -83% -86% -92% -92% -92% -95% -95%
Text::Table::TinyWide 24/s 2314% 973% 753% 109% 43% 41% -- -21% -29% -36% -41% -48% -60% -70% -77% -80% -89% -89% -89% -93% -93%
Text::SimpleTable 32/s 2993% 1275% 993% 168% 84% 81% 28% -- -9% -18% -25% -34% -50% -62% -70% -75% -85% -86% -86% -91% -92%
Text::Table::HTML 35/s 3313% 1417% 1106% 196% 103% 100% 41% 10% -- -10% -17% -27% -44% -58% -67% -72% -84% -84% -85% -90% -91%
Text::Table::Manifold 39/s 3707% 1592% 1246% 230% 126% 123% 57% 23% 11% -- -7% -19% -38% -53% -63% -69% -82% -83% -83% -89% -90%
Text::Table::Tiny 41/s 4025% 1733% 1358% 258% 145% 141% 70% 33% 20% 8% -- -12% -33% -50% -60% -67% -81% -81% -82% -88% -89%
Text::TabularDisplay 47/s 4614% 1995% 1566% 309% 180% 176% 95% 52% 38% 23% 14% -- -23% -42% -55% -62% -78% -79% -79% -86% -88%
Text::Table::TinyColor 62/s 6087% 2650% 2087% 437% 268% 262% 156% 100% 81% 62% 50% 31% -- -25% -41% -50% -71% -72% -73% -82% -84%
Text::MarkdownTable 86/s 8150% 3566% 2816% 616% 391% 383% 241% 166% 141% 116% 100% 75% 33% -- -21% -34% -62% -63% -64% -76% -79%
Text::Table 110/s 10431% 4580% 3623% 814% 527% 517% 336% 240% 208% 176% 155% 123% 70% 27% -- -15% -52% -53% -54% -70% -73%
Text::Table::HTML::DataTables 130/s 12431% 5469% 4330% 988% 646% 634% 418% 305% 267% 229% 203% 165% 102% 51% 18% -- -43% -44% -45% -64% -68%
Text::Table::TinyBorderStyle 220/s 21900% 9677% 7677% 1811% 1211% 1188% 811% 611% 544% 477% 433% 366% 255% 166% 108% 75% -- -2% -4% -37% -44%
Text::Table::CSV 230/s 22399% 9899% 7854% 1854% 1240% 1218% 831% 627% 559% 490% 445% 377% 263% 172% 113% 79% 2% -- -2% -36% -43%
Text::Table::Org 230/s 22923% 10132% 8039% 1900% 1272% 1248% 853% 644% 574% 504% 458% 388% 272% 179% 118% 83% 4% 2% -- -34% -41%
Text::Table::Sprintf 360/s 35257% 15614% 12400% 2971% 2007% 1971% 1364% 1042% 935% 828% 757% 650% 471% 328% 235% 182% 60% 57% 53% -- -10%
Text::Table::Any 400/s 39500% 17500% 13900% 3340% 2260% 2220% 1539% 1180% 1060% 940% 860% 740% 540% 380% 276% 216% 80% 76% 72% 11% --
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 | 7.8 | 130 | 0.00% | 37283.05% | 0.0012 | 20 |
| Text::ANSITable | 20 | 50 | 155.65% | 14522.58% | 0.00018 | 20 |
| Text::Table::More | 25 | 40 | 218.34% | 11643.01% | 9.2e-05 | 20 |
| Text::ASCIITable | 100 | 8 | 1451.05% | 2310.18% | 0.0001 | 21 |
| Text::FormatTable | 160 | 6.3 | 1932.80% | 1738.99% | 1.1e-05 | 20 |
| Text::Table::TinyColorWide | 170 | 5.8 | 2113.73% | 1588.69% | 1.7e-05 | 20 |
| Text::Table::TinyWide | 250 | 4.1 | 3045.53% | 1088.45% | 1.3e-05 | 20 |
| Text::SimpleTable | 310 | 3.3 | 3791.86% | 860.54% | 7.8e-06 | 20 |
| Text::TabularDisplay | 340 | 2.9 | 4242.44% | 760.88% | 2.5e-05 | 20 |
| Text::Table::Manifold | 350 | 2.8 | 4380.44% | 734.36% | 1.6e-05 | 21 |
| Text::Table::Tiny | 380 | 2.6 | 4796.42% | 663.48% | 1.1e-05 | 20 |
| Text::Table::HTML | 400 | 2 | 5268.89% | 596.29% | 2.6e-05 | 20 |
| Text::MarkdownTable | 430 | 2.3 | 5342.75% | 586.84% | 5.8e-06 | 20 |
| Text::Table | 510 | 2 | 6390.17% | 476.00% | 7.4e-06 | 20 |
| Text::Table::TinyColor | 590 | 1.7 | 7481.10% | 393.11% | 5e-06 | 21 |
| Text::Table::HTML::DataTables | 990 | 1 | 12555.73% | 195.38% | 5.4e-06 | 20 |
| Text::Table::TinyBorderStyle | 1400 | 0.73 | 17384.03% | 113.81% | 1.1e-06 | 20 |
| Text::Table::Org | 1600 | 0.61 | 20935.91% | 77.71% | 3.8e-06 | 20 |
| Text::Table::CSV | 1800 | 0.556 | 22842.23% | 62.94% | 2.1e-07 | 20 |
| Text::Table::Any | 2880 | 0.348 | 36587.08% | 1.90% | 2.1e-07 | 20 |
| Text::Table::Sprintf | 2930 | 0.341 | 37283.05% | 0.00% | 2.7e-07 | 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::TabularDisplay Text::Table::Manifold Text::Table::Tiny Text::MarkdownTable Text::Table::HTML Text::Table Text::Table::TinyColor Text::Table::HTML::DataTables Text::Table::TinyBorderStyle Text::Table::Org Text::Table::CSV Text::Table::Any Text::Table::Sprintf
Text::UnicodeBox::Table 7.8/s -- -61% -69% -93% -95% -95% -96% -97% -97% -97% -98% -98% -98% -98% -98% -99% -99% -99% -99% -99% -99%
Text::ANSITable 20/s 160% -- -19% -84% -87% -88% -91% -93% -94% -94% -94% -95% -96% -96% -96% -98% -98% -98% -98% -99% -99%
Text::Table::More 25/s 225% 25% -- -80% -84% -85% -89% -91% -92% -93% -93% -94% -95% -95% -95% -97% -98% -98% -98% -99% -99%
Text::ASCIITable 100/s 1525% 525% 400% -- -21% -27% -48% -58% -63% -65% -67% -71% -75% -75% -78% -87% -90% -92% -93% -95% -95%
Text::FormatTable 160/s 1963% 693% 534% 26% -- -7% -34% -47% -53% -55% -58% -63% -68% -68% -73% -84% -88% -90% -91% -94% -94%
Text::Table::TinyColorWide 170/s 2141% 762% 589% 37% 8% -- -29% -43% -50% -51% -55% -60% -65% -65% -70% -82% -87% -89% -90% -94% -94%
Text::Table::TinyWide 250/s 3070% 1119% 875% 95% 53% 41% -- -19% -29% -31% -36% -43% -51% -51% -58% -75% -82% -85% -86% -91% -91%
Text::SimpleTable 310/s 3839% 1415% 1112% 142% 90% 75% 24% -- -12% -15% -21% -30% -39% -39% -48% -69% -77% -81% -83% -89% -89%
Text::TabularDisplay 340/s 4382% 1624% 1279% 175% 117% 100% 41% 13% -- -3% -10% -20% -31% -31% -41% -65% -74% -78% -80% -88% -88%
Text::Table::Manifold 350/s 4542% 1685% 1328% 185% 125% 107% 46% 17% 3% -- -7% -17% -28% -28% -39% -64% -73% -78% -80% -87% -87%
Text::Table::Tiny 380/s 4900% 1823% 1438% 207% 142% 123% 57% 26% 11% 7% -- -11% -23% -23% -34% -61% -71% -76% -78% -86% -86%
Text::MarkdownTable 430/s 5552% 2073% 1639% 247% 173% 152% 78% 43% 26% 21% 13% -- -13% -13% -26% -56% -68% -73% -75% -84% -85%
Text::Table::HTML 400/s 6400% 2400% 1900% 300% 215% 190% 104% 64% 44% 39% 30% 14% -- 0% -15% -50% -63% -69% -72% -82% -82%
Text::Table 510/s 6400% 2400% 1900% 300% 215% 190% 104% 64% 44% 39% 30% 14% 0% -- -15% -50% -63% -69% -72% -82% -82%
Text::Table::TinyColor 590/s 7547% 2841% 2252% 370% 270% 241% 141% 94% 70% 64% 52% 35% 17% 17% -- -41% -57% -64% -67% -79% -79%
Text::Table::HTML::DataTables 990/s 12900% 4900% 3900% 700% 530% 480% 309% 229% 190% 179% 160% 129% 100% 100% 70% -- -27% -39% -44% -65% -65%
Text::Table::TinyBorderStyle 1400/s 17708% 6749% 5379% 995% 763% 694% 461% 352% 297% 283% 256% 215% 173% 173% 132% 36% -- -16% -23% -52% -53%
Text::Table::Org 1600/s 21211% 8096% 6457% 1211% 932% 850% 572% 440% 375% 359% 326% 277% 227% 227% 178% 63% 19% -- -8% -42% -44%
Text::Table::CSV 1800/s 23281% 8892% 7094% 1338% 1033% 943% 637% 493% 421% 403% 367% 313% 259% 259% 205% 79% 31% 9% -- -37% -38%
Text::Table::Any 2880/s 37256% 14267% 11394% 2198% 1710% 1566% 1078% 848% 733% 704% 647% 560% 474% 474% 388% 187% 109% 75% 59% -- -2%
Text::Table::Sprintf 2930/s 38023% 14562% 11630% 2246% 1747% 1600% 1102% 867% 750% 721% 662% 574% 486% 486% 398% 193% 114% 78% 63% 2% --
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 | 5 | 0.00% | 49318.62% | 6.5e-05 | 20 |
| Text::ANSITable | 710 | 1.4 | 273.25% | 13140.15% | 5.4e-06 | 20 |
| Text::Table::More | 1000 | 0.99 | 432.26% | 9184.73% | 1.8e-06 | 20 |
| Text::Table::TinyBorderStyle | 3900 | 0.26 | 1949.48% | 2311.27% | 6.9e-07 | 20 |
| Text::ASCIITable | 4800 | 0.21 | 2417.39% | 1863.09% | 1.3e-06 | 21 |
| Text::FormatTable | 6800 | 0.15 | 3516.95% | 1266.30% | 6.9e-07 | 20 |
| Text::Table | 7700 | 0.13 | 3978.23% | 1111.77% | 2.5e-07 | 22 |
| Text::Table::Manifold | 7800 | 0.13 | 4013.06% | 1101.50% | 2.1e-07 | 20 |
| Text::Table::TinyColorWide | 7900 | 0.13 | 4082.92% | 1081.44% | 2.1e-07 | 20 |
| Text::Table::TinyWide | 11000 | 0.089 | 5805.69% | 736.80% | 1.1e-07 | 20 |
| Text::MarkdownTable | 12000 | 0.081 | 6428.62% | 656.95% | 8.6e-08 | 31 |
| Text::SimpleTable | 13000 | 0.077 | 6777.54% | 618.55% | 1e-07 | 33 |
| Text::TabularDisplay | 15000 | 0.066 | 7937.39% | 514.86% | 4.3e-07 | 20 |
| Text::Table::HTML::DataTables | 15000 | 0.066 | 7962.70% | 512.93% | 9.5e-08 | 25 |
| Text::Table::Tiny | 15300 | 0.0653 | 7993.91% | 510.57% | 2.6e-08 | 21 |
| Text::Table::TinyColor | 24000 | 0.0417 | 12569.86% | 290.05% | 1.3e-08 | 20 |
| Text::Table::HTML | 24800 | 0.0403 | 13012.25% | 276.89% | 1.3e-08 | 20 |
| Text::Table::Org | 52600 | 0.019 | 27683.28% | 77.87% | 6.1e-09 | 24 |
| Text::Table::CSV | 78900 | 0.0127 | 41573.53% | 18.59% | 5e-09 | 35 |
| Text::Table::Any | 80600 | 0.0124 | 42507.83% | 15.98% | 3.3e-09 | 20 |
| Text::Table::Sprintf | 93500 | 0.0107 | 49318.62% | 0.00% | 3e-09 | 24 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::ANSITable Text::Table::More Text::Table::TinyBorderStyle Text::ASCIITable Text::FormatTable Text::Table Text::Table::Manifold Text::Table::TinyColorWide Text::Table::TinyWide Text::MarkdownTable Text::SimpleTable Text::TabularDisplay Text::Table::HTML::DataTables Text::Table::Tiny Text::Table::TinyColor Text::Table::HTML Text::Table::Org Text::Table::CSV Text::Table::Any Text::Table::Sprintf
Text::UnicodeBox::Table 200/s -- -72% -80% -94% -95% -97% -97% -97% -97% -98% -98% -98% -98% -98% -98% -99% -99% -99% -99% -99% -99%
Text::ANSITable 710/s 257% -- -29% -81% -85% -89% -90% -90% -90% -93% -94% -94% -95% -95% -95% -97% -97% -98% -99% -99% -99%
Text::Table::More 1000/s 405% 41% -- -73% -78% -84% -86% -86% -86% -91% -91% -92% -93% -93% -93% -95% -95% -98% -98% -98% -98%
Text::Table::TinyBorderStyle 3900/s 1823% 438% 280% -- -19% -42% -50% -50% -50% -65% -68% -70% -74% -74% -74% -83% -84% -92% -95% -95% -95%
Text::ASCIITable 4800/s 2280% 566% 371% 23% -- -28% -38% -38% -38% -57% -61% -63% -68% -68% -68% -80% -80% -90% -93% -94% -94%
Text::FormatTable 6800/s 3233% 833% 560% 73% 39% -- -13% -13% -13% -40% -46% -48% -55% -55% -56% -72% -73% -87% -91% -91% -92%
Text::Table 7700/s 3746% 976% 661% 100% 61% 15% -- 0% 0% -31% -37% -40% -49% -49% -49% -67% -69% -85% -90% -90% -91%
Text::Table::Manifold 7800/s 3746% 976% 661% 100% 61% 15% 0% -- 0% -31% -37% -40% -49% -49% -49% -67% -69% -85% -90% -90% -91%
Text::Table::TinyColorWide 7900/s 3746% 976% 661% 100% 61% 15% 0% 0% -- -31% -37% -40% -49% -49% -49% -67% -69% -85% -90% -90% -91%
Text::Table::TinyWide 11000/s 5517% 1473% 1012% 192% 135% 68% 46% 46% 46% -- -8% -13% -25% -25% -26% -53% -54% -78% -85% -86% -87%
Text::MarkdownTable 12000/s 6072% 1628% 1122% 220% 159% 85% 60% 60% 60% 9% -- -4% -18% -18% -19% -48% -50% -76% -84% -84% -86%
Text::SimpleTable 13000/s 6393% 1718% 1185% 237% 172% 94% 68% 68% 68% 15% 5% -- -14% -14% -15% -45% -47% -75% -83% -83% -86%
Text::TabularDisplay 15000/s 7475% 2021% 1400% 293% 218% 127% 96% 96% 96% 34% 22% 16% -- 0% -1% -36% -38% -71% -80% -81% -83%
Text::Table::HTML::DataTables 15000/s 7475% 2021% 1400% 293% 218% 127% 96% 96% 96% 34% 22% 16% 0% -- -1% -36% -38% -71% -80% -81% -83%
Text::Table::Tiny 15300/s 7556% 2043% 1416% 298% 221% 129% 99% 99% 99% 36% 24% 17% 1% 1% -- -36% -38% -70% -80% -81% -83%
Text::Table::TinyColor 24000/s 11890% 3257% 2274% 523% 403% 259% 211% 211% 211% 113% 94% 84% 58% 58% 56% -- -3% -54% -69% -70% -74%
Text::Table::HTML 24800/s 12306% 3373% 2356% 545% 421% 272% 222% 222% 222% 120% 100% 91% 63% 63% 62% 3% -- -52% -68% -69% -73%
Text::Table::Org 52600/s 26215% 7268% 5110% 1268% 1005% 689% 584% 584% 584% 368% 326% 305% 247% 247% 243% 119% 112% -- -33% -34% -43%
Text::Table::CSV 78900/s 39270% 10923% 7695% 1947% 1553% 1081% 923% 923% 923% 600% 537% 506% 419% 419% 414% 228% 217% 49% -- -2% -15%
Text::Table::Any 80600/s 40222% 11190% 7883% 1996% 1593% 1109% 948% 948% 948% 617% 553% 520% 432% 432% 426% 236% 225% 53% 2% -- -13%
Text::Table::Sprintf 93500/s 46628% 12984% 9152% 2329% 1862% 1301% 1114% 1114% 1114% 731% 657% 619% 516% 516% 510% 289% 276% 77% 18% 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
#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% | 75061.76% | 7.2e-05 | 20 |
| Text::ANSITable | 2300 | 0.44 | 481.41% | 12827.45% | 1.3e-06 | 20 |
| Text::Table::More | 3000 | 0.33 | 673.26% | 9620.14% | 2.2e-06 | 20 |
| Text::Table::TinyBorderStyle | 4800 | 0.21 | 1127.95% | 6020.92% | 6.9e-07 | 20 |
| Text::Table::Manifold | 14000 | 0.073 | 3390.75% | 2053.17% | 1.1e-07 | 20 |
| Text::ASCIITable | 17000 | 0.06 | 4189.96% | 1652.04% | 3.5e-07 | 20 |
| Text::Table | 20000 | 0.05 | 4719.47% | 1459.55% | 6.7e-07 | 20 |
| Text::Table::HTML::DataTables | 21000 | 0.048 | 5262.00% | 1301.75% | 9.7e-08 | 24 |
| Text::MarkdownTable | 25000 | 0.04 | 6258.17% | 1082.13% | 1.1e-07 | 20 |
| Text::FormatTable | 34000 | 0.029 | 8611.91% | 762.75% | 1.1e-07 | 22 |
| Text::Table::TinyColorWide | 46000 | 0.022 | 11750.19% | 534.27% | 3e-08 | 24 |
| Text::Table::Tiny | 54000 | 0.018 | 13862.61% | 438.31% | 2.6e-08 | 21 |
| Text::Table::TinyWide | 60000 | 0.017 | 15386.79% | 385.33% | 2e-08 | 20 |
| Text::TabularDisplay | 62468.1 | 0.0160082 | 15911.46% | 369.42% | 0 | 20 |
| Text::SimpleTable | 64700 | 0.0155 | 16471.25% | 353.57% | 6.7e-09 | 20 |
| Text::Table::TinyColor | 91000 | 0.011 | 23131.41% | 223.54% | 1.3e-08 | 22 |
| Text::Table::HTML | 120000 | 0.0082 | 31181.42% | 140.28% | 1e-08 | 20 |
| Text::Table::Org | 142000 | 0.00703 | 36356.69% | 106.17% | 2.9e-09 | 26 |
| Text::Table::Any | 180000 | 0.0054 | 47266.53% | 58.68% | 6.5e-09 | 21 |
| Text::Table::Sprintf | 270000 | 0.0037 | 68997.45% | 8.78% | 1.3e-08 | 20 |
| Text::Table::CSV | 293000 | 0.00341 | 75061.76% | 0.00% | 1.4e-09 | 29 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::ANSITable Text::Table::More Text::Table::TinyBorderStyle Text::Table::Manifold Text::ASCIITable Text::Table Text::Table::HTML::DataTables Text::MarkdownTable Text::FormatTable Text::Table::TinyColorWide Text::Table::Tiny Text::Table::TinyWide Text::TabularDisplay Text::SimpleTable Text::Table::TinyColor Text::Table::HTML Text::Table::Org Text::Table::Any Text::Table::Sprintf Text::Table::CSV
Text::UnicodeBox::Table 400/s -- -85% -89% -93% -97% -98% -98% -98% -98% -99% -99% -99% -99% -99% -99% -99% -99% -99% -99% -99% -99%
Text::ANSITable 2300/s 581% -- -25% -52% -83% -86% -88% -89% -90% -93% -95% -95% -96% -96% -96% -97% -98% -98% -98% -99% -99%
Text::Table::More 3000/s 809% 33% -- -36% -77% -81% -84% -85% -87% -91% -93% -94% -94% -95% -95% -96% -97% -97% -98% -98% -98%
Text::Table::TinyBorderStyle 4800/s 1328% 109% 57% -- -65% -71% -76% -77% -80% -86% -89% -91% -91% -92% -92% -94% -96% -96% -97% -98% -98%
Text::Table::Manifold 14000/s 4009% 502% 352% 187% -- -17% -31% -34% -45% -60% -69% -75% -76% -78% -78% -84% -88% -90% -92% -94% -95%
Text::ASCIITable 17000/s 4900% 633% 450% 250% 21% -- -16% -19% -33% -51% -63% -70% -71% -73% -74% -81% -86% -88% -91% -93% -94%
Text::Table 20000/s 5900% 779% 560% 319% 45% 19% -- -4% -20% -42% -56% -64% -65% -67% -69% -78% -83% -85% -89% -92% -93%
Text::Table::HTML::DataTables 21000/s 6150% 816% 587% 337% 52% 25% 4% -- -16% -39% -54% -62% -64% -66% -67% -77% -82% -85% -88% -92% -92%
Text::MarkdownTable 25000/s 7400% 1000% 725% 425% 82% 50% 25% 19% -- -27% -45% -55% -57% -59% -61% -72% -79% -82% -86% -90% -91%
Text::FormatTable 34000/s 10244% 1417% 1037% 624% 151% 106% 72% 65% 37% -- -24% -37% -41% -44% -46% -62% -71% -75% -81% -87% -88%
Text::Table::TinyColorWide 46000/s 13536% 1900% 1400% 854% 231% 172% 127% 118% 81% 31% -- -18% -22% -27% -29% -50% -62% -68% -75% -83% -84%
Text::Table::Tiny 54000/s 16566% 2344% 1733% 1066% 305% 233% 177% 166% 122% 61% 22% -- -5% -11% -13% -38% -54% -60% -70% -79% -81%
Text::Table::TinyWide 60000/s 17547% 2488% 1841% 1135% 329% 252% 194% 182% 135% 70% 29% 5% -- -5% -8% -35% -51% -58% -68% -78% -79%
Text::TabularDisplay 62468.1/s 18640% 2648% 1961% 1211% 356% 274% 212% 199% 149% 81% 37% 12% 6% -- -3% -31% -48% -56% -66% -76% -78%
Text::SimpleTable 64700/s 19254% 2738% 2029% 1254% 370% 287% 222% 209% 158% 87% 41% 16% 9% 3% -- -29% -47% -54% -65% -76% -78%
Text::Table::TinyColor 91000/s 27172% 3900% 2900% 1809% 563% 445% 354% 336% 263% 163% 100% 63% 54% 45% 40% -- -25% -36% -50% -66% -69%
Text::Table::HTML 120000/s 36485% 5265% 3924% 2460% 790% 631% 509% 485% 387% 253% 168% 119% 107% 95% 89% 34% -- -14% -34% -54% -58%
Text::Table::Org 142000/s 42574% 6158% 4594% 2887% 938% 753% 611% 582% 468% 312% 212% 156% 141% 127% 120% 56% 16% -- -23% -47% -51%
Text::Table::Any 180000/s 55455% 8048% 6011% 3788% 1251% 1011% 825% 788% 640% 437% 307% 233% 214% 196% 187% 103% 51% 30% -- -31% -36%
Text::Table::Sprintf 270000/s 80981% 11791% 8818% 5575% 1872% 1521% 1251% 1197% 981% 683% 494% 386% 359% 332% 318% 197% 121% 89% 45% -- -7%
Text::Table::CSV 293000/s 87876% 12803% 9577% 6058% 2040% 1659% 1366% 1307% 1073% 750% 545% 427% 398% 369% 354% 222% 140% 106% 58% 8% --
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 | 40 | 25 | 0.00% | 38035.84% | 0.00013 | 21 |
| Text::ANSITable | 94 | 11 | 137.04% | 15988.38% | 4.2e-05 | 20 |
| Text::Table::More | 130 | 7.5 | 236.11% | 11246.27% | 3.4e-05 | 20 |
| Text::ASCIITable | 520 | 1.9 | 1211.61% | 2807.55% | 3.5e-06 | 20 |
| Text::FormatTable | 720 | 1.4 | 1700.78% | 2017.74% | 1.8e-06 | 21 |
| Text::Table::TinyColorWide | 880 | 1.1 | 2117.40% | 1619.84% | 3e-06 | 20 |
| Text::Table | 1200 | 0.85 | 2868.25% | 1184.79% | 9.1e-07 | 20 |
| Text::Table::TinyWide | 1200 | 0.82 | 2979.82% | 1138.25% | 2.1e-06 | 20 |
| Text::Table::TinyBorderStyle | 1240 | 0.807 | 3010.24% | 1126.14% | 6.4e-07 | 20 |
| Text::SimpleTable | 1600 | 0.61 | 4019.62% | 825.71% | 8.8e-07 | 21 |
| Text::Table::Manifold | 1700 | 0.6 | 4093.25% | 809.46% | 8.5e-07 | 20 |
| Text::Table::Tiny | 2020 | 0.495 | 4977.95% | 651.01% | 4.8e-07 | 20 |
| Text::TabularDisplay | 2300 | 0.43 | 5776.56% | 548.95% | 1.4e-06 | 20 |
| Text::Table::HTML | 3000 | 0.33 | 7451.94% | 404.98% | 6.4e-07 | 20 |
| Text::Table::TinyColor | 3050 | 0.328 | 7559.95% | 397.86% | 1.9e-07 | 24 |
| Text::MarkdownTable | 3500 | 0.29 | 8665.15% | 335.08% | 4.3e-07 | 20 |
| Text::Table::HTML::DataTables | 4800 | 0.21 | 11976.18% | 215.79% | 1.3e-06 | 20 |
| Text::Table::Org | 8600 | 0.12 | 21438.87% | 77.06% | 2.7e-07 | 20 |
| Text::Table::CSV | 12000 | 0.085 | 29353.92% | 29.48% | 2.1e-07 | 20 |
| Text::Table::Any | 14500 | 0.0688 | 36414.52% | 4.44% | 2.7e-08 | 20 |
| Text::Table::Sprintf | 15200 | 0.0659 | 38035.84% | 0.00% | 2.5e-08 | 22 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::ANSITable Text::Table::More Text::ASCIITable Text::FormatTable Text::Table::TinyColorWide Text::Table Text::Table::TinyWide Text::Table::TinyBorderStyle Text::SimpleTable Text::Table::Manifold Text::Table::Tiny Text::TabularDisplay Text::Table::HTML Text::Table::TinyColor Text::MarkdownTable Text::Table::HTML::DataTables Text::Table::Org Text::Table::CSV Text::Table::Any Text::Table::Sprintf
Text::UnicodeBox::Table 40/s -- -56% -70% -92% -94% -95% -96% -96% -96% -97% -97% -98% -98% -98% -98% -98% -99% -99% -99% -99% -99%
Text::ANSITable 94/s 127% -- -31% -82% -87% -90% -92% -92% -92% -94% -94% -95% -96% -97% -97% -97% -98% -98% -99% -99% -99%
Text::Table::More 130/s 233% 46% -- -74% -81% -85% -88% -89% -89% -91% -92% -93% -94% -95% -95% -96% -97% -98% -98% -99% -99%
Text::ASCIITable 520/s 1215% 478% 294% -- -26% -42% -55% -56% -57% -67% -68% -73% -77% -82% -82% -84% -88% -93% -95% -96% -96%
Text::FormatTable 720/s 1685% 685% 435% 35% -- -21% -39% -41% -42% -56% -57% -64% -69% -76% -76% -79% -85% -91% -93% -95% -95%
Text::Table::TinyColorWide 880/s 2172% 900% 581% 72% 27% -- -22% -25% -26% -44% -45% -55% -60% -70% -70% -73% -80% -89% -92% -93% -94%
Text::Table 1200/s 2841% 1194% 782% 123% 64% 29% -- -3% -5% -28% -29% -41% -49% -61% -61% -65% -75% -85% -90% -91% -92%
Text::Table::TinyWide 1200/s 2948% 1241% 814% 131% 70% 34% 3% -- -1% -25% -26% -39% -47% -59% -60% -64% -74% -85% -89% -91% -91%
Text::Table::TinyBorderStyle 1240/s 2997% 1263% 829% 135% 73% 36% 5% 1% -- -24% -25% -38% -46% -59% -59% -64% -73% -85% -89% -91% -91%
Text::SimpleTable 1600/s 3998% 1703% 1129% 211% 129% 80% 39% 34% 32% -- -1% -18% -29% -45% -46% -52% -65% -80% -86% -88% -89%
Text::Table::Manifold 1700/s 4066% 1733% 1150% 216% 133% 83% 41% 36% 34% 1% -- -17% -28% -44% -45% -51% -65% -80% -85% -88% -89%
Text::Table::Tiny 2020/s 4950% 2122% 1415% 283% 182% 122% 71% 65% 63% 23% 21% -- -13% -33% -33% -41% -57% -75% -82% -86% -86%
Text::TabularDisplay 2300/s 5713% 2458% 1644% 341% 225% 155% 97% 90% 87% 41% 39% 15% -- -23% -23% -32% -51% -72% -80% -84% -84%
Text::Table::HTML 3000/s 7475% 3233% 2172% 475% 324% 233% 157% 148% 144% 84% 81% 50% 30% -- 0% -12% -36% -63% -74% -79% -80%
Text::Table::TinyColor 3050/s 7521% 3253% 2186% 479% 326% 235% 159% 149% 146% 85% 82% 50% 31% 0% -- -11% -35% -63% -74% -79% -79%
Text::MarkdownTable 3500/s 8520% 3693% 2486% 555% 382% 279% 193% 182% 178% 110% 106% 70% 48% 13% 13% -- -27% -58% -70% -76% -77%
Text::Table::HTML::DataTables 4800/s 11804% 5138% 3471% 804% 566% 423% 304% 290% 284% 190% 185% 135% 104% 57% 56% 38% -- -42% -59% -67% -68%
Text::Table::Org 8600/s 20733% 9066% 6150% 1483% 1066% 816% 608% 583% 572% 408% 400% 312% 258% 175% 173% 141% 75% -- -29% -42% -45%
Text::Table::CSV 12000/s 29311% 12841% 8723% 2135% 1547% 1194% 899% 864% 849% 617% 605% 482% 405% 288% 285% 241% 147% 41% -- -19% -22%
Text::Table::Any 14500/s 36237% 15888% 10801% 2661% 1934% 1498% 1135% 1091% 1072% 786% 772% 619% 525% 379% 376% 321% 205% 74% 23% -- -4%
Text::Table::Sprintf 15200/s 37836% 16591% 11280% 2783% 2024% 1569% 1189% 1144% 1124% 825% 810% 651% 552% 400% 397% 340% 218% 82% 28% 4% --
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.4 | 0.00% | 1830.18% | 0.00027 | 20 |
| Text::Table::Manifold | 92 | 83.4 | 81.30% | 964.64% | 0.00016 | 20 |
| Text::ANSITable | 47 | 38.4 | 257.06% | 440.57% | 5.5e-05 | 20 |
| Text::MarkdownTable | 42 | 33.4 | 294.86% | 388.83% | 5.6e-05 | 20 |
| Text::Table::TinyColorWide | 35 | 26.4 | 380.00% | 302.12% | 6.6e-05 | 20 |
| Text::Table::TinyWide | 32.1 | 23.5 | 419.12% | 271.82% | 2.7e-05 | 20 |
| Text::Table::More | 25 | 16.4 | 559.15% | 192.83% | 7.8e-05 | 20 |
| Text::Table | 24 | 15.4 | 601.85% | 175.01% | 0.00011 | 20 |
| Text::ASCIITable | 19 | 10.4 | 777.55% | 119.95% | 9.1e-05 | 20 |
| Text::Table::Tiny | 19 | 10.4 | 787.87% | 117.39% | 0.00011 | 20 |
| Text::FormatTable | 16 | 7.4 | 960.14% | 82.07% | 3.8e-05 | 20 |
| Text::Table::TinyColor | 15 | 6.4 | 998.71% | 75.68% | 6.9e-05 | 20 |
| Text::Table::TinyBorderStyle | 13 | 4.4 | 1185.52% | 50.15% | 0.00011 | 20 |
| Text::Table::Any | 12.5 | 3.9 | 1234.89% | 44.60% | 1.1e-05 | 20 |
| Text::SimpleTable | 12 | 3.4 | 1314.31% | 36.48% | 5.5e-05 | 20 |
| Text::TabularDisplay | 12 | 3.4 | 1320.89% | 35.84% | 5.7e-05 | 20 |
| Text::Table::HTML::DataTables | 11 | 2.4 | 1410.81% | 27.76% | 2.6e-05 | 20 |
| Text::Table::HTML | 11 | 2.4 | 1417.70% | 27.18% | 4.1e-05 | 22 |
| Text::Table::Org | 11 | 2.4 | 1433.01% | 25.91% | 2.3e-05 | 20 |
| Text::Table::CSV | 8.9 | 0.300000000000001 | 1759.70% | 3.79% | 1.6e-05 | 20 |
| Text::Table::Sprintf | 8.8 | 0.200000000000001 | 1789.17% | 2.17% | 1.8e-05 | 20 |
| perl -e1 (baseline) | 8.6 | 0 | 1830.18% | 0.00% | 5e-05 | 20 |
+-------------------------------+-----------+---------------------+-----------------------+-----------------------+-----------+---------+
Formatted as Benchmark.pm result:
Rate Text::UnicodeBox::Table Text::Table::Manifold Text::ANSITable Text::MarkdownTable Text::Table::TinyColorWide Text::Table::TinyWide Text::Table::More Text::Table Text::ASCIITable Text::Table::Tiny Text::FormatTable Text::Table::TinyColor Text::Table::TinyBorderStyle Text::Table::Any Text::SimpleTable Text::TabularDisplay Text::Table::HTML::DataTables Text::Table::HTML Text::Table::Org Text::Table::CSV Text::Table::Sprintf perl -e1 (baseline)
Text::UnicodeBox::Table 5.9/s -- -45% -72% -75% -79% -81% -85% -85% -88% -88% -90% -91% -92% -92% -92% -92% -93% -93% -93% -94% -94% -94%
Text::Table::Manifold 10.9/s 84% -- -48% -54% -61% -65% -72% -73% -79% -79% -82% -83% -85% -86% -86% -86% -88% -88% -88% -90% -90% -90%
Text::ANSITable 21.3/s 261% 95% -- -10% -25% -31% -46% -48% -59% -59% -65% -68% -72% -73% -74% -74% -76% -76% -76% -81% -81% -81%
Text::MarkdownTable 23.8/s 304% 119% 11% -- -16% -23% -40% -42% -54% -54% -61% -64% -69% -70% -71% -71% -73% -73% -73% -78% -79% -79%
Text::Table::TinyColorWide 28.6/s 385% 162% 34% 19% -- -8% -28% -31% -45% -45% -54% -57% -62% -64% -65% -65% -68% -68% -68% -74% -74% -75%
Text::Table::TinyWide 31.2/s 429% 186% 46% 30% 9% -- -22% -25% -40% -40% -50% -53% -59% -61% -62% -62% -65% -65% -65% -72% -72% -73%
Text::Table::More 40.0/s 580% 268% 87% 68% 39% 28% -- -4% -24% -24% -36% -40% -48% -50% -52% -52% -56% -56% -56% -64% -64% -65%
Text::Table 41.7/s 608% 283% 95% 75% 45% 33% 4% -- -20% -20% -33% -37% -45% -47% -50% -50% -54% -54% -54% -62% -63% -64%
Text::ASCIITable 52.6/s 794% 384% 147% 121% 84% 68% 31% 26% -- 0% -15% -21% -31% -34% -36% -36% -42% -42% -42% -53% -53% -54%
Text::Table::Tiny 52.6/s 794% 384% 147% 121% 84% 68% 31% 26% 0% -- -15% -21% -31% -34% -36% -36% -42% -42% -42% -53% -53% -54%
Text::FormatTable 62.5/s 962% 475% 193% 162% 118% 100% 56% 50% 18% 18% -- -6% -18% -21% -25% -25% -31% -31% -31% -44% -44% -46%
Text::Table::TinyColor 66.7/s 1033% 513% 213% 179% 133% 114% 66% 60% 26% 26% 6% -- -13% -16% -19% -19% -26% -26% -26% -40% -41% -42%
Text::Table::TinyBorderStyle 76.9/s 1207% 607% 261% 223% 169% 146% 92% 84% 46% 46% 23% 15% -- -3% -7% -7% -15% -15% -15% -31% -32% -33%
Text::Table::Any 80.0/s 1260% 636% 276% 236% 179% 156% 100% 92% 52% 52% 28% 19% 4% -- -4% -4% -12% -12% -12% -28% -29% -31%
Text::SimpleTable 83.3/s 1316% 666% 291% 250% 191% 167% 108% 100% 58% 58% 33% 25% 8% 4% -- 0% -8% -8% -8% -25% -26% -28%
Text::TabularDisplay 83.3/s 1316% 666% 291% 250% 191% 167% 108% 100% 58% 58% 33% 25% 8% 4% 0% -- -8% -8% -8% -25% -26% -28%
Text::Table::HTML::DataTables 90.9/s 1445% 736% 327% 281% 218% 191% 127% 118% 72% 72% 45% 36% 18% 13% 9% 9% -- 0% 0% -19% -19% -21%
Text::Table::HTML 90.9/s 1445% 736% 327% 281% 218% 191% 127% 118% 72% 72% 45% 36% 18% 13% 9% 9% 0% -- 0% -19% -19% -21%
Text::Table::Org 90.9/s 1445% 736% 327% 281% 218% 191% 127% 118% 72% 72% 45% 36% 18% 13% 9% 9% 0% 0% -- -19% -19% -21%
Text::Table::CSV 112.4/s 1810% 933% 428% 371% 293% 260% 180% 169% 113% 113% 79% 68% 46% 40% 34% 34% 23% 23% 23% -- -1% -3%
Text::Table::Sprintf 113.6/s 1831% 945% 434% 377% 297% 264% 184% 172% 115% 115% 81% 70% 47% 42% 36% 36% 25% 25% 25% 1% -- -2%
perl -e1 (baseline) 116.3/s 1876% 969% 446% 388% 306% 273% 190% 179% 120% 120% 86% 74% 51% 45% 39% 39% 27% 27% 27% 3% 2% --
Legends:
Text::ANSITable: mod_overhead_time=38.4 participant=Text::ANSITable
Text::ASCIITable: mod_overhead_time=10.4 participant=Text::ASCIITable
Text::FormatTable: mod_overhead_time=7.4 participant=Text::FormatTable
Text::MarkdownTable: mod_overhead_time=33.4 participant=Text::MarkdownTable
Text::SimpleTable: mod_overhead_time=3.4 participant=Text::SimpleTable
Text::Table: mod_overhead_time=15.4 participant=Text::Table
Text::Table::Any: mod_overhead_time=3.9 participant=Text::Table::Any
Text::Table::CSV: mod_overhead_time=0.300000000000001 participant=Text::Table::CSV
Text::Table::HTML: mod_overhead_time=2.4 participant=Text::Table::HTML
Text::Table::HTML::DataTables: mod_overhead_time=2.4 participant=Text::Table::HTML::DataTables
Text::Table::Manifold: mod_overhead_time=83.4 participant=Text::Table::Manifold
Text::Table::More: mod_overhead_time=16.4 participant=Text::Table::More
Text::Table::Org: mod_overhead_time=2.4 participant=Text::Table::Org
Text::Table::Sprintf: mod_overhead_time=0.200000000000001 participant=Text::Table::Sprintf
Text::Table::Tiny: mod_overhead_time=10.4 participant=Text::Table::Tiny
Text::Table::TinyBorderStyle: mod_overhead_time=4.4 participant=Text::Table::TinyBorderStyle
Text::Table::TinyColor: mod_overhead_time=6.4 participant=Text::Table::TinyColor
Text::Table::TinyColorWide: mod_overhead_time=26.4 participant=Text::Table::TinyColorWide
Text::Table::TinyWide: mod_overhead_time=23.5 participant=Text::Table::TinyWide
Text::TabularDisplay: mod_overhead_time=3.4 participant=Text::TabularDisplay
Text::UnicodeBox::Table: mod_overhead_time=161.4 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:
-
+--------+--------+--------+ | 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 | +--------+--------+--------+
-
.-----------+-----------+-----------. | 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 | '-----------+-----------+-----------'
-
+--------+--------+--------+ | 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 | +--------+--------+--------+
-
.--------+--------+--------. | 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 | `--------+--------+--------'
-
.--------------------------. | 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 | '--------+--------+--------'
-
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
-
| 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 |
-
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
-
+--------+--------+--------+ | 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 | `--------+--------+--------'
-
.--------+--------+--------. | 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 | `--------+--------+--------'
-
+--------+--------+--------+ | 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 | +--------+--------+--------+
-
+--------+--------+--------+ | 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 | +--------+--------+--------+
-
+--------+--------+--------+ | 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 | +--------+--------+--------+
-
+--------+--------+--------+ | 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 | +--------+--------+--------+
-
| 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 |
-
"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"
-
<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 = {"dom":"lQfrtip","buttons":["colvis","print"]}; $(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>
-
+--------+--------+--------+ | 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
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.