如何使用Perl以块的形式处理和打印数组?

neb*_*lus 1 arrays perl

如何以块的形式打印数组并指定每行打印多少个元素?

#Given    
@array = qw/a b c d e f g i j/;
$chr_per_line =3;
Run Code Online (Sandbox Code Playgroud)

输出:

a b c \n
d e f \n
g i j \n
Run Code Online (Sandbox Code Playgroud)

谢谢!

fri*_*edo 6

splice我不喜欢使用破坏性的这种东西,而是喜欢使用List :: MoreUtils中的natatime(一次N个)

use List::MoreUtils 'natatime';

my @array = qw/a b c d e f g i j/;
my $iter = natatime 3, @array;

while( my @chunk = $iter->() ) { 
    print join( ' ', @chunk ), "\n";
}
Run Code Online (Sandbox Code Playgroud)