我有一个这样的数组
@array = (
1,
some 9-digit number-1,
some 9-digit number-2,
2,
some 9-digit number-3,
some 9-digit number-4
.....and so on
);现在,我想在一个表中打印这段代码
1 some 9-digit number-1 some 9-digit number-2
2 some 9-digit number-3 some 9-digit number-4
3 some 9-digit number-5 some 9-digit number-6我还想将表格打印到文本文件中。什么逻辑才是最好的?
谢谢
发布于 2014-08-09 02:54:34
我想通了。我用了Text::Table谢谢- John F
use Text::Table;
my $tb = Text::Table->new( "Heading 1", "Heading 2" , "Heading 3");
for (my $i = 0; $i <= $#array; $i += 3) {
$tb->load([@array[$i, $i+1, $i+2]]);
}
print $tb; 发布于 2014-08-09 05:20:08
对于这个简单的任务,模块实际上并不是必需的。
这里有一个仅使用splice和printf的替代解决方案。
use strict;
use warnings;
my @array = (
1, 999999991, 999999992,
2, 999999993, 999999994,
3, 999999995, 999999996,
);
while ( @array >= 3 ) {
printf "%-4s %-10s %s\n", splice @array, 0, 3;
}输出
1 999999991 999999992
2 999999993 999999994
3 999999995 999999996https://stackoverflow.com/questions/25209959
复制相似问题