我有 2 个数组@arr
,@arr1
每个数组中存储了 10 个元素。我需要打印一个带有标题的表格。我需要将这些数组值加载到 10 行和 2 列的表中。
@arr values into 1st column & `@arr1` into second column.
表应该像这里显示的那样。如何在 perl 脚本中做到这一点?
我有 2 个数组@arr
,@arr1
每个数组中存储了 10 个元素。我需要打印一个带有标题的表格。我需要将这些数组值加载到 10 行和 2 列的表中。
@arr values into 1st column & `@arr1` into second column.
表应该像这里显示的那样。如何在 perl 脚本中做到这一点?
您可以将数组与map
. 这也很容易扩展到更多列。
#!/usr/bin/env perl
use strict;
use warnings;
use Text::Table;
my @arr = 'a' .. 'j';
my @arr1 = 1 .. 10;
my $tb = Text::Table->new("Col 1", "Col 2");
$tb->load( map [$arr[$_], $arr1[$_]], 0 .. $#arr );
print $tb;
输出:
Col 1 Col 2
a 1
b 2
c 3
d 4
e 5
f 6
g 7
h 8
i 9
j 10
如果你想添加边框,你可以这样做:
my $tb = Text::Table->new(
{is_sep => 1, title => '| ', body => '| '},
"Col 1",
{is_sep => 1, title => ' | ', body => ' | '},
"Col 2",
{is_sep => 1, title => ' |', body => ' |'},
);
$tb->load(map [$arr[$_], $arr1[$_]], 0 .. $#arr);
print $tb->rule('-', '+');
for (0 .. @arr) {
print $tb->table($_);
print $tb->rule('-', '+');
}
上面的一切都my $tb = ...
没有改变。不过,就我个人而言,我不是 ascii 边框的忠实粉丝。