我有以下内容:
my @array = qw/a b c d e f g h i j/;
my $elements_per_line =4;
我需要输出看起来像这样:
a | b | c | d |
e | f | g | h |
i | j
我试过这个:
while (@array) {
print join " | ", splice(@array, 0, $elements_per_line), "\n";
}
但是这会在所有3行的末尾产生“|”。
答案 0 :(得分:2)
这是一种方式:
my @array = qw/a b c d e f g h i j/;
my $elements_per_line =4;
while (@array) {
print join " | ", splice(@array, 0, $elements_per_line);
print " |" if @array;
print "\n";
}
答案 1 :(得分:-1)
不使用连接或拼接的解决方案怎么样?
my $count = 0;
foreach my $element (@array) {
print "$element | ";
$count++;
if (($count % $elements_per_line) == 0) {
print "\n";
}
}
不知道它是否与split
/ join
一样高效,但更容易理解。