NAME Text::Table::Sprintf - Generate simple text tables from 2D arrays using sprintf() VERSION This document describes version 0.003 of Text::Table::Sprintf (from Perl distribution Text-Table-Sprintf), released on 2021-04-06. SYNOPSIS use Text::Table::Sprintf; my $rows = [ # header row ['Name', 'Rank', 'Serial'], # rows ['alice', 'pvt', '123456'], ['bob', 'cpl', '98765321'], ['carol', 'brig gen', '8745'], ]; print Text::Table::Sprintf::table(rows => $rows, header_row => 1); DESCRIPTION This module provides a single function, "table", which formats a two-dimensional array of data as a simple text table. The example shown in the SYNOPSIS generates the following table: +-------+----------+----------+ | Name | Rank | Serial | +-------+----------+----------+ | alice | pvt | 123456 | | bob | cpl | 98765321 | | carol | brig gen | 8745 | +-------+----------+----------+ This module models its interface on Text::Table::Tiny 0.03, employs the same technique of using "sprintf()", but takes the technique further by using a single large format and "sprintf" the whole table. This results in even more performance gain (see benchmark result or benchmark using Acme::CPANModules::TextTable). Caveats: make sure each row contains the same number of elements. Otherwise, the table will not be correctly formatted (cells might move to another row/column). DECLARED FEATURES Features declared by this module: From feature set TextTable Features from feature set TextTable declared by this module: * can_align_cell_containing_color_code Value: no. * can_align_cell_containing_newline Value: no. * can_align_cell_containing_wide_character Value: no. * can_color Can produce colored table. Value: no. * can_color_theme Allow choosing colors from a named set of palettes. Value: no. * can_colspan Value: no. * can_customize_border Let user customize border character in some way, e.g. selecting from several available borders, disable border. Value: no. * can_halign Provide a way for user to specify horizontal alignment (left/middle/right) of cells. Value: no. * can_halign_individual_cell Provide a way for user to specify different horizontal alignment (left/middle/right) for individual cells. Value: no. * can_halign_individual_column Provide a way for user to specify different horizontal alignment (left/middle/right) for individual columns. Value: no. * can_halign_individual_row Provide a way for user to specify different horizontal alignment (left/middle/right) for individual rows. Value: no. * can_hpad Provide a way for user to specify horizontal padding of cells. Value: no. * can_hpad_individual_cell Provide a way for user to specify different horizontal padding of individual cells. Value: no. * can_hpad_individual_column Provide a way for user to specify different horizontal padding of individual columns. Value: no. * can_hpad_individual_row Provide a way for user to specify different horizontal padding of individual rows. Value: no. * can_rowspan Value: no. * can_set_cell_height Allow setting height of rows. Value: no. * can_set_cell_height_of_individual_row Allow setting height of individual rows. Value: no. * can_set_cell_width Allow setting height of rows. Value: no. * can_set_cell_width_of_individual_column Allow setting height of individual rows. Value: no. * can_use_box_character Can use terminal box-drawing character when drawing border. Value: no. * can_valign Provide a way for user to specify vertical alignment (top/middle/bottom) of cells. Value: no. * can_valign_individual_cell Provide a way for user to specify different vertical alignment (top/middle/bottom) for individual cells. Value: no. * can_valign_individual_column Provide a way for user to specify different vertical alignment (top/middle/bottom) for individual columns. Value: no. * can_valign_individual_row Provide a way for user to specify different vertical alignment (top/middle/bottom) for individual rows. Value: no. * can_vpad Provide a way for user to specify vertical padding of cells. Value: no. * can_vpad_individual_cell Provide a way for user to specify different vertical padding of individual cells. Value: no. * can_vpad_individual_column Provide a way for user to specify different vertical padding of individual columns. Value: no. * can_vpad_individual_row Provide a way for user to specify different vertical padding of individual rows. Value: no. * speed Subjective speed rating, relative to other text table modules. Value: "fast". For more details on module features, see Module::Features. FUNCTIONS table Usage: my $table_str = Text::Table::Sprintf::table(%params); The "table" function understands these arguments, which are passed as a hash. * rows (aoaos) Takes an array reference which should contain one or more rows of data, where each row is an array reference. * header_row (bool) If given a true value, the first row in the data will be interpreted as a header row, and separated from the rest of the table with a ruled line. HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . BUGS Please report any bugs or feature requests on the bugtracker website 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 Text::Table::Tiny Other text table modules listed in Acme::CPANModules::TextTable. AUTHOR perlancar COPYRIGHT AND LICENSE This software is copyright (c) 2021, 2020 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.