使用Text :: Table创建具有动态列数的表

时间:2015-08-28 15:40:20

标签: perl

我想创建一个程序,询问用户一些输入(我将其保存在数组中),然后创建一个表格,将这些输入作为列名称,但我不知道如何动态创建列

我目前正在使用Text::Table模块,使用此模块实现此目标会很棒。

这是我将从用户输入获得的示例数组:

my @columns = ("TIME", "P1", "P2", "B1", "P3");

这就是我手动制作表格的方式:

my $table = Text::Table->new(
    {title => 'TIME', align_title => 'center'},
    {title => ' P1 ', align_title => 'center'},
    {title => ' P2 ', align_title => 'center'},
    {title => ' B1 ', align_title => 'center'},
    {title => ' P3 ', align_title => 'center'}
);

1 个答案:

答案 0 :(得分:2)

你有一个字符串数组;将其转换为hashrefs数组,其中每个hashref为column spec,您可以使用map

use Text::Table;

my @columns = ("TIME", "P1", "P2", "B1", "P3");
my @col_spec = map { { title => $_, align_title => 'center' } } @columns;

my $table = Text::Table->new(@col_spec);