NAME

Acme::CPANModules::TextTable - Modules that generate text tables

VERSION

This document describes version 0.009 of Acme::CPANModules::TextTable (from Perl distribution Acme-CPANModules-TextTable), released on 2021-02-20.

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.

BENCHMARKED MODULES

Version numbers shown below are the versions used when running the sample benchmark.

Text::Table::Any 0.100

Text::UnicodeBox::Table

Text::Table::Manifold 1.03

Text::ANSITable 0.602

Text::ASCIITable 0.22

Text::FormatTable 1.03

Text::MarkdownTable 0.3.1

Text::Table 1.133

Text::Table::Tiny 1.00

Text::Table::TinyBorderStyle 0.004

Text::Table::More 0.009

Text::Table::Sprintf 0.001

Text::Table::TinyColor 0.002

Text::Table::TinyColorWide 0.001

Text::Table::TinyWide 0.001

Text::Table::Org 0.02

Text::Table::CSV 0.023

Text::Table::HTML 0.003

Text::Table::HTML::DataTables 0.007

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.30.0, CPU: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (2 cores), OS: GNU/Linux Ubuntu version 19.10, OS kernel: Linux version 5.3.0-64-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   |     970   |                 0.00% |             39484.05% |   0.0022  |      20 |
| Text::ANSITable               |       2.4 |     420   |               131.74% |             16981.42% |   0.00087 |      20 |
| Text::Table::More             |       5.2 |     190   |               406.72% |              7711.84% |   0.00029 |      20 |
| Text::ASCIITable              |      12   |      86   |              1026.60% |              3413.58% |   0.00026 |      22 |
| Text::FormatTable             |      17   |      60   |              1529.60% |              2329.06% |   0.00022 |      20 |
| Text::Table::TinyColorWide    |      17   |      58.8 |              1556.30% |              2289.90% | 5.3e-05   |      20 |
| Text::Table::TinyWide         |      24   |      41   |              2259.87% |              1577.38% | 7.6e-05   |      20 |
| Text::Table::Manifold         |      39   |      26   |              3665.29% |               951.29% | 3.8e-05   |      20 |
| Text::TabularDisplay          |      44   |      23   |              4151.12% |               831.14% |   0.0001  |      20 |
| Text::Table::TinyColor        |      62   |      16   |              5958.76% |               553.34% | 3.7e-05   |      20 |
| Text::Table::Tiny             |      64   |      16   |              6174.05% |               530.92% | 4.7e-05   |      20 |
| Text::Table::Any              |      65   |      15   |              6222.54% |               526.08% | 6.8e-05   |      20 |
| Text::MarkdownTable           |      82   |      12   |              7857.77% |               397.43% | 7.2e-05   |      20 |
| Text::Table                   |     100   |       9.6 |             10093.51% |               288.33% | 5.7e-05   |      20 |
| Text::Table::HTML::DataTables |     110   |       8.9 |             10851.19% |               261.46% | 8.8e-05   |      20 |
| Text::Table::HTML             |     120   |       8.1 |             11889.99% |               230.14% | 7.2e-05   |      21 |
| Text::Table::CSV              |     230   |       4.3 |             22339.48% |                76.40% | 1.8e-05   |      20 |
| Text::Table::TinyBorderStyle  |     200   |       4   |             23298.18% |                69.18% | 4.2e-05   |      20 |
| Text::Table::Org              |     240   |       4.2 |             23335.57% |                68.91% | 1.9e-05   |      20 |
| Text::Table::Sprintf          |     400   |       2   |             39484.05% |                 0.00% | 3.2e-05   |      20 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+

#table2#
{dataset=>"long (3x300)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| participant                   | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors   | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| Text::UnicodeBox::Table       |       8.2 |   120     |                 0.00% |             41406.41% |   0.00042 |      20 |
| Text::ANSITable               |      22   |    46     |               166.08% |             15499.31% |   0.00015 |      20 |
| Text::Table::More             |      49   |    21     |               493.69% |              6891.21% | 8.8e-05   |      20 |
| Text::ASCIITable              |     100   |     8     |              1371.68% |              2720.35% |   0.00011 |      21 |
| Text::FormatTable             |     150   |     6.5   |              1768.23% |              2121.69% | 5.6e-05   |      20 |
| Text::Table::TinyColorWide    |     170   |     6     |              1949.23% |              1925.46% | 3.1e-05   |      20 |
| Text::Table::TinyWide         |     200   |     4     |              2664.36% |              1401.48% | 5.2e-05   |      20 |
| Text::TabularDisplay          |     300   |     3.3   |              3561.61% |              1033.56% | 3.3e-05   |      20 |
| Text::Table::Manifold         |     350   |     2.9   |              4185.03% |               868.64% | 1.3e-05   |      20 |
| Text::MarkdownTable           |     410   |     2.4   |              4941.74% |               723.26% | 1.8e-05   |      21 |
| Text::Table                   |     490   |     2     |              5886.85% |               593.29% | 1.4e-05   |      21 |
| Text::Table::Any              |     570   |     1.8   |              6841.50% |               497.95% | 7.2e-06   |      20 |
| Text::Table::Tiny             |     580   |     1.7   |              6954.00% |               488.41% | 5.1e-06   |      20 |
| Text::Table::TinyColor        |     600   |     1.7   |              7181.51% |               470.03% | 1.3e-05   |      20 |
| Text::Table::HTML::DataTables |     950   |     1.1   |             11545.75% |               256.41% | 9.6e-06   |      20 |
| Text::Table::HTML             |    1110   |     0.901 |             13475.05% |               205.76% | 8.5e-07   |      20 |
| Text::Table::TinyBorderStyle  |    1800   |     0.57  |             21361.42% |                93.40% | 2.9e-06   |      20 |
| Text::Table::Org              |    1800   |     0.55  |             22236.24% |                85.83% | 1.4e-06   |      20 |
| Text::Table::CSV              |    1840   |     0.544 |             22392.40% |                84.54% | 4.8e-07   |      20 |
| Text::Table::Sprintf          |    3390   |     0.295 |             41406.41% |                 0.00% | 2.1e-07   |      20 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+

#table3#
{dataset=>"small (3x5)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| participant                   | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| Text::UnicodeBox::Table       |       190 | 5.2       |                 0.00% |             52622.69% | 4.8e-05 |      20 |
| Text::ANSITable               |       850 | 1.2       |               340.98% |             11855.81% | 4.9e-06 |      20 |
| Text::Table::More             |      2100 | 0.48      |               986.91% |              4750.69% | 1.3e-06 |      20 |
| Text::ASCIITable              |      4900 | 0.2       |              2469.54% |              1951.83% | 9.1e-07 |      20 |
| Text::FormatTable             |      7000 | 0.14      |              3572.36% |              1335.66% | 2.1e-07 |      21 |
| Text::Table                   |      7700 | 0.13      |              3933.76% |              1207.04% |   2e-07 |      22 |
| Text::Table::Manifold         |      7800 | 0.13      |              3981.37% |              1191.79% | 2.1e-07 |      20 |
| Text::Table::TinyColorWide    |      7900 | 0.13      |              4011.29% |              1182.39% | 2.1e-07 |      20 |
| Text::Table::TinyWide         |     11200 | 0.0895    |              5724.02% |               805.26% | 7.8e-08 |      21 |
| Text::Table::TinyBorderStyle  |     12000 | 0.086     |              5937.79% |               773.21% | 1.3e-07 |      20 |
| Text::MarkdownTable           |     12000 | 0.08      |              6383.09% |               713.23% | 2.1e-07 |      20 |
| Text::Table::HTML::DataTables |     10000 | 0.08      |              6790.67% |               665.13% | 7.7e-07 |      20 |
| Text::TabularDisplay          |     15000 | 0.067     |              7719.69% |               574.23% | 2.4e-07 |      20 |
| Text::Table::TinyColor        |     20000 | 0.05      |              9510.69% |               448.58% | 2.6e-06 |      22 |
| Text::Table::Any              |     20000 | 0.049     |             10442.21% |               400.11% | 1.1e-07 |      20 |
| Text::Table::Tiny             |     21000 | 0.048     |             10673.61% |               389.37% | 5.7e-08 |      27 |
| Text::Table::HTML             |     47000 | 0.021     |             24414.86% |               115.06% | 2.7e-08 |      20 |
| Text::Table::Org              |     56000 | 0.018     |             28940.37% |                81.55% | 2.7e-08 |      20 |
| Text::Table::CSV              |     78800 | 0.0127    |             41005.07% |                28.26% |   6e-09 |      25 |
| Text::Table::Sprintf          |    101130 | 0.0098881 |             52622.69% |                 0.00% | 2.1e-11 |      20 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+

#table4#
{dataset=>"tiny (1x1)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| participant                   | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+
| Text::UnicodeBox::Table       |       500 |   2       |                 0.00% |             61292.33% | 7.3e-05 |      20 |
| Text::ANSITable               |      3000 |   0.34    |               528.88% |              9662.22% | 2.3e-06 |      22 |
| Text::Table::More             |      7700 |   0.13    |              1524.09% |              3680.11% |   2e-07 |      23 |
| Text::Table::Manifold         |     14000 |   0.073   |              2805.73% |              2012.80% |   1e-07 |      21 |
| Text::Table::TinyBorderStyle  |     15000 |   0.066   |              3132.40% |              1799.28% | 1.3e-07 |      22 |
| Text::ASCIITable              |     18000 |   0.056   |              3670.77% |              1528.11% | 1.3e-07 |      22 |
| Text::Table                   |     21000 |   0.048   |              4295.45% |              1296.72% | 1.1e-07 |      20 |
| Text::Table::HTML::DataTables |     21000 |   0.048   |              4341.79% |              1282.15% | 1.2e-07 |      20 |
| Text::MarkdownTable           |     25000 |   0.041   |              5115.47% |              1077.12% | 1.1e-07 |      20 |
| Text::FormatTable             |     34000 |   0.029   |              7133.04% |               748.78% | 6.4e-08 |      22 |
| Text::Table::TinyColorWide    |     45000 |   0.022   |              9403.75% |               545.98% | 2.4e-08 |      24 |
| Text::TabularDisplay          |     56000 |   0.018   |             11798.72% |               415.96% |   8e-08 |      20 |
| Text::Table::TinyWide         |     58000 |   0.017   |             12203.74% |               398.97% | 3.3e-08 |      20 |
| Text::Table::Any              |     59000 |   0.017   |             12427.69% |               390.05% | 2.7e-08 |      20 |
| Text::Table::Tiny             |     63000 |   0.016   |             13217.27% |               361.00% | 2.7e-08 |      20 |
| Text::Table::TinyColor        |     94000 |   0.011   |             19914.10% |               206.75% | 1.3e-08 |      20 |
| Text::Table::Org              |    147000 |   0.0068  |             31110.94% |                96.70% |   3e-09 |      24 |
| Text::Table::HTML             |    183000 |   0.00546 |             38769.80% |                57.94% | 1.6e-09 |      23 |
| Text::Table::Sprintf          |    288000 |   0.00347 |             61087.88% |                 0.33% | 1.6e-09 |      23 |
| Text::Table::CSV              |    289000 |   0.00346 |             61292.33% |                 0.00% | 1.4e-09 |      29 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+---------+---------+

#table5#
{dataset=>"wide (30x5)"}
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| participant                   | rate (/s) | time (ms) | pct_faster_vs_slowest | pct_slower_vs_fastest |  errors   | samples |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+
| Text::UnicodeBox::Table       |     38    | 26        |                 0.00% |             42439.84% |   0.00017 |      20 |
| Text::ANSITable               |    110    |  9.4      |               180.50% |             15065.71% | 4.4e-05   |      22 |
| Text::Table::More             |    200    |  4        |               541.40% |              6532.38% | 6.9e-05   |      20 |
| Text::ASCIITable              |    510    |  2        |              1237.96% |              3079.46% | 1.4e-05   |      20 |
| Text::FormatTable             |    700    |  1.4      |              1754.40% |              2194.00% | 6.5e-06   |      20 |
| Text::Table::TinyColorWide    |    870    |  1.1      |              2209.99% |              1741.56% | 3.1e-06   |      20 |
| Text::Table                   |   1200    |  0.86     |              2996.76% |              1273.69% | 3.4e-06   |      20 |
| Text::Table::TinyWide         |   1200    |  0.84     |              3039.14% |              1255.14% | 6.9e-06   |      23 |
| Text::Table::Manifold         |   1700    |  0.6      |              4352.22% |               855.47% | 1.1e-06   |      20 |
| Text::TabularDisplay          |   2200    |  0.45     |              5784.98% |               622.85% | 2.2e-06   |      21 |
| Text::Table::Tiny             |   2900    |  0.35     |              7520.63% |               458.22% |   2e-06   |      20 |
| Text::Table::Any              |   3000    |  0.33     |              7872.28% |               433.60% | 4.3e-07   |      20 |
| Text::Table::TinyColor        |   3100    |  0.32     |              8138.17% |               416.38% | 3.7e-07   |      20 |
| Text::Table::TinyBorderStyle  |   3280    |  0.305    |              8579.95% |               390.09% | 2.1e-07   |      20 |
| Text::MarkdownTable           |   3500    |  0.28     |              9233.10% |               355.80% | 8.8e-07   |      21 |
| Text::Table::HTML::DataTables |   5000    |  0.2      |             13148.63% |               221.09% | 9.6e-07   |      20 |
| Text::Table::HTML             |   6600    |  0.15     |             17449.76% |               142.40% | 2.1e-07   |      20 |
| Text::Table::Org              |   9158.85 |  0.109184 |             24163.82% |                75.32% | 2.3e-11   |      20 |
| Text::Table::CSV              |  12200    |  0.0818   |             32273.50% |                31.40% | 2.5e-08   |      22 |
| Text::Table::Sprintf          |  16100    |  0.0623   |             42439.84% |                 0.00% | 2.6e-08   |      21 |
+-------------------------------+-----------+-----------+-----------------------+-----------------------+-----------+---------+

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.1               |                 0.00% |              1833.19% |   0.00081 |      20 |
| Text::Table::Manifold         |      89   |  80.1               |                93.41% |               899.52% |   0.00023 |      20 |
| Text::ANSITable               |      48   |  39.1               |               255.87% |               443.24% |   0.00016 |      26 |
| Text::MarkdownTable           |      44   |  35.1               |               293.61% |               391.15% |   0.00016 |      20 |
| Text::Table::TinyColorWide    |      34   |  25.1               |               409.02% |               279.79% | 9.1e-05   |      20 |
| Text::Table::TinyWide         |      33   |  24.1               |               428.82% |               265.56% |   0.00026 |      20 |
| Text::Table::More             |      24   |  15.1               |               606.64% |               173.57% | 5.8e-05   |      20 |
| Text::Table                   |      24   |  15.1               |               624.82% |               166.71% |   0.00017 |      23 |
| Text::ASCIITable              |      19   |  10.1               |               812.81% |               111.78% | 4.7e-05   |      22 |
| Text::Table::Tiny             |      17   |   8.1               |               899.58% |                93.40% | 4.9e-05   |      20 |
| Text::FormatTable             |      15   |   6.1               |              1016.34% |                73.17% | 5.6e-05   |      20 |
| Text::Table::TinyColor        |      14   |   5.1               |              1090.20% |                62.43% | 4.7e-05   |      20 |
| Text::Table::TinyBorderStyle  |      12   |   3.1               |              1323.11% |                35.84% | 4.5e-05   |      21 |
| Text::TabularDisplay          |      12   |   3.1               |              1387.51% |                29.96% | 3.6e-05   |      20 |
| Text::Table::HTML             |      11   |   2.1               |              1475.23% |                22.72% | 5.2e-05   |      20 |
| Text::Table::HTML::DataTables |      11   |   2.1               |              1489.90% |                21.59% | 3.8e-05   |      20 |
| Text::Table::Any              |       9.8 |   0.9               |              1648.24% |                10.58% | 4.5e-05   |      20 |
| Text::Table::Org              |       9.3 |   0.4               |              1747.29% |                 4.65% | 8.8e-05   |      20 |
| Text::Table::Sprintf          |       9.3 |   0.4               |              1750.16% |                 4.49% | 8.5e-05   |      20 |
| Text::Table::CSV              |       9.1 |   0.199999999999999 |              1790.16% |                 2.28% |   5e-05   |      20 |
| perl -e1 (baseline)           |       8.9 |   0                 |              1833.19% |                 0.00% | 6.2e-05   |      20 |
+-------------------------------+-----------+---------------------+-----------------------+-----------------------+-----------+---------+

To display as an interactive HTML table on a browser, you can add option --format html+datatables.

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 *22)         | N/A *22)      | N/A *22)     | N/A *22)       | N/A *22)        | N/A *22)    | N/A *22)          | N/A *22)         | N/A *22)            | N/A *22)     | N/A *22)   | N/A *22)         | N/A *22)           | N/A *22)        | N/A *22)       | 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           | slow       | 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 *23)           | 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           | slow       | 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 *24)             | 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 *25)     | 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          | slow       | 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          | fast       | 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 *26)     | no             | N/A             | N/A         | N/A               | N/A              | yes *27)            | 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 *28)        | 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 *28)        | 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 *26)     | 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. But this module can pass rendering to other module like Text::UnicodeBox::Table
24. Newlines stripped
25. Does not draw borders
26. Irrelevant
27. But make sure your CSV parser can handle multiline cell
28. Not converted to HTML color elements

ACME::MODULES ENTRIES

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

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.

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/perlancar/perl-Acme-CPANModules-TextTable/issues

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.

SEE ALSO

Acme::CPANModules::HTMLTable

Acme::CPANModules - about the Acme::CPANModules namespace

cpanmodules - CLI tool to let you browse/view the lists

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021, 2020, 2019 by 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.