GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Text::Table::HTML(3) User Contributed Perl Documentation Text::Table::HTML(3)

Text::Table::HTML - Generate HTML table

This document describes version 0.012 of Text::Table::HTML (from Perl distribution Text-Table-HTML), released on 2025-05-15.

 use Text::Table::HTML;
 my $rows = [
     # header row
     ['Name', 'Rank', 'Serial'],
     # rows
     ['alice', 'pvt', '123<456>'],
     ['bob',   'cpl', '98765321'],
     ['carol', 'brig gen', '8745'],
 ];
 print Text::Table::HTML::table(rows => $rows, header_row => 1);

This module provides a single function, "table", which formats a two-dimensional array of data as HTML table. Its interface was first modelled after Text::Table::Tiny 0.03.

The example shown in the SYNOPSIS generates the following table:

 <table>
 <thead>
 <tr><th>Name</th><th>Rank</th><th>Serial</th></tr>
 </thead>
 <tbody>
 <tr><td>alice</td><td>pvt</td><td>123&lt;456&gt;</td></tr>
 <tr><td>bob</td><td>cpl</td><td>98765321</td></tr>
 <tr><td>carol</td><td>brig gen</td><td>8745</td></tr>
 </tbody>
 </table>

In "Text::Table::HTML", "header_row" is an integer instead of boolean. It supports multiple header rows.

Cells in "rows" can be hashrefs instead of scalars.

The "table" function understands these arguments, which are passed as a hash.

  • rows

    Required. Array of array of (scalars or hashrefs). One or more rows of data, where each row is an array reference. Each array element is a string (cell content) or hashref (with key "text" to contain the cell text or "raw_html" to contain the cell's raw HTML which won't be escaped further), and optionally other cell and HTML attributes: "align", "bottom_border", "colspan", "html_class", "html_element", "html_headers", "html_id", "html_scope", "html_style", "rowspan" ).

    The "html_element" attribute specifies the name of the HTML element to use for that cell. It defaults to "th" for header rows and "td" for data rows.

    If the "bottom_border" attribute is set, the row element will have a class attribute of "has_bottom_border".

    For example,

      header_row => 1,
      rows =>
        [ [ '&nbsp', 'January', 'December' ],
          [ { html_element => 'th', text => 'Boots' } , 20, 30 ],
          [ { html_element => 'th', text => 'Frocks' } , 40, 50 ],
        ]
        

    generates a table where each entry in the first row is a header element, and the first entry in subsequent rows is an element.

  • caption

    Optional. Str. If set, will add an HTML "<caption>" element to set the table caption.

  • header_row

    Optional. Integer. Default 0. Whether we should add header row(s) (rows inside "<thead>" instead of "<tbody>"). Support multiple header rows; you can set this argument to an integer larger than 1.

  • footer_row

    Optional. Integer. Default 0. Whether we should add footer row(s) (rows inside "<tfoot>" instead of "<tbody>"). Supports multiple footer rows.

  • If the footer rows are found immediately after the header rows (if any) in the "rows" array, set "footer_row" to the number of rows.
  • If the footer rows are the last rows in "rows", set "footer_row" to the negative number of rows.
  • separate_rows

    Boolean. Optional. Default 0. If set to true is equivalent to setting the "bottom_border" attribute for each row.

  • html_colgroup

    Optional. An array of scalars or hashes which define a "colgroup" block.

    The array should contain one entry per column or per span of columns. Each entry will result in a new "col" element, with the following mapping:

  • undefined

    If an entry is "undef",then an empty "col" element will be added.

  • hash

    A hash is translated into element attributes named after its keys.

    Empty hashes result in an empty "col" element.

  • scalars

    A scalar must be a string containig a complete specification of an attribute, and is inserted verbatim into the element.

For example,

  html_colgroup => [ undef, {}, q{span="2"}, { class => 'batman' } ]

results in

  <colgroup>
  <col/>
  <col/>
  <col span="2" />
  <col class="batman" />
  </colgroup>
  • html_attr

    Optional. Hash. The hash entries are added as attributes to the "table" HTML element.

  • html_id

    Optional. Scalar. The table element's id attribute.

  • html_class

    Optional. Scalar. The table element's class attribute.

  • html_style

    Optional. Scalar. The table element's style attribute.

Please visit the project's homepage at <https://metacpan.org/release/Text-Table-HTML>.

Source repository is at <https://github.com/perlancar/perl-Text-Table-HTML>.

Text::Table::HTML::DataTables

Text::Table::Any

Bencher::Scenario::TextTableModules

perlancar <perlancar@cpan.org>

Diab Jerius <djerius@cfa.harvard.edu>

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.

This software is copyright (c) 2025 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.

Please report any bugs or feature requests on the bugtracker website <https://rt.cpan.org/Public/Dist/Display.html?Name=Text-Table-HTML>

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.

2025-05-15 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.