我有2个阵列@arr
& @arr1
每个都有10个元素存储在其中。
我需要用标题打印一个表。
我需要将这些数组值加载到10行和10的表中。 2列。
@arr values into 1st column & `@arr1` into second column.
表格应该像这里显示的那样。我怎么能在perl脚本中做到这一点?
答案 0 :(得分:4)
您可以将数组与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边界的忠实粉丝。