NAME
    Text::Table::Any - Generate text table using one of several backends

VERSION
    This document describes version 0.104 of Text::Table::Any (from Perl
    distribution Text-Table-Any), released on 2021-04-26.

SYNOPSIS
     use Text::Table::Any;

     my $rows = [
         # header row
         ['Name', 'Rank', 'Serial'],
         # rows
         ['alice', 'pvt', '123456'],
         ['bob',   'cpl', '98765321'],
         ['carol', 'brig gen', '8745'],
     ];
     print Text::Table::Any::table(rows => $rows, header_row => 1,
                                   backend => 'Text::Table::More');

DESCRIPTION
    This module provides a single function, "table", which formats a
    two-dimensional array of data as text table, using one of several
    available backends. The interface is modelled after Text::Table::Tiny
    (0.03). Text::Table::Sprintf is the default backend.

    The example shown in the SYNOPSIS generates the following table:

     +-------+----------+----------+
     | Name  | Rank     | Serial   |
     +-------+----------+----------+
     | alice | pvt      | 123456   |
     | bob   | cpl      | 98765321 |
     | carol | brig gen | 8745     |
     +-------+----------+----------+

    When using "Text::Table::Org" backend, the result is something like:

     | Name  | Rank     | Serial   |
     |-------+----------+----------|
     | alice | pvt      | 123456   |
     | bob   | cpl      | 98765321 |
     | carol | brig gen | 8745     |

    When using "Text::Table::CSV" backend:

     "Name","Rank","Serial"
     "alice","pvt","123456"
     "bob","cpl","98765321"
     "carol","brig gen","8745"

    When using "Text::ANSITable" backend:

     .-------+----------+----------.
     | Name  | Rank     |   Serial |
     +-------+----------+----------+
     | alice | pvt      |   123456 |
     | bob   | cpl      | 98765321 |
     | carol | brig gen |     8745 |
     `-------+----------+----------'

    When using "Text::ASCIITable" backend:

     .-----------------------------.
     | Name  | Rank     | Serial   |
     +-------+----------+----------+
     | alice | pvt      |   123456 |
     | bob   | cpl      | 98765321 |
     | carol | brig gen |     8745 |
     '-------+----------+----------'

    When using "Text::FormatTable" backend:

     Name |Rank    |Serial
     alice|pvt     |123456
     bob  |cpl     |98765321
     carol|brig gen|8745

    When using "Text::MarkdownTable" backend:

     | Name  | Rank     | Serial   |
     |-------|----------|----------|
     | alice | pvt      | 123456   |
     | bob   | cpl      | 98765321 |
     | carol | brig gen | 8745     |

    When using "Text::Table" backend:

     Name  Rank     Serial
     alice pvt        123456
     bob   cpl      98765321
     carol brig gen     8745

    When using "Text::TabularDisplay" backend:

     +-------+----------+----------+
     | Name  | Rank     | Serial   |
     +-------+----------+----------+
     | alice | pvt      | 123456   |
     | bob   | cpl      | 98765321 |
     | carol | brig gen | 8745     |
     +-------+----------+----------+

VARIABLES
  @BACKENDS
    List of supported backends.

FUNCTIONS
  table
    Usage:

     table(%params) => str

    Known arguments:

    *   rows (aoaos)

        Required. Takes an array reference which should contain one or more
        rows of data, where each row is an array reference.

    *   backend (str, default "Text::Table::Sprintf")

        Optional. Pick a backend module. Supported backends:

        *   Term::TablePrint

        *   Text::ANSITable

        *   Text::ASCIITable

        *   Text::FormatTable

        *   Text::MarkdownTable

        *   Text::Table

        *   Text::Table::ASV

        *   Text::Table::CSV

        *   Text::Table::HTML

        *   Text::Table::HTML::DataTables

        *   Text::Table::LTSV

        *   Text::Table::Manifold

        *   Text::Table::More

        *   Text::Table::Org

        *   Text::Table::Paragraph

        *   Text::Table::Sprintf

        *   Text::Table::TickitWidget

        *   Text::Table::Tiny

        *   Text::Table::TinyBorderStyle

        *   Text::Table::TinyColor

        *   Text::Table::TinyColorWide

        *   Text::Table::TinyWide

        *   Text::Table::TSV

        *   Text::Table::XLSX

        *   Text::TabularDisplay

        *   Text::UnicodeBox::Table

    *   header_row (bool, default 0)

        Optional. If given a true value, the first row in the data will be
        interpreted as a header row, and separated visually from the rest of
        the table (e.g. with a ruled line). But some backends won't display
        differently.

    *   separate_rows

        Boolean. Optional. Default false. If set to true, will draw a
        separator line after each data row.

  backends
    Return list of supported backends. You can also get the list from the
    "@BACKENDS" package variable.

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

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

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://github.com/perlancar/perl-Text-Table-Any/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::TextTable

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2021, 2020, 2019, 2018, 2017, 2016, 2015
    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.

