需要有关如何将数组数据分成特定字符串的不同列的建议。以下示例基于“EXIT”分割数据&打印到不同的列。感谢。
示例:
约翰
伊娃
费利克斯
退出
一
b
ç
退出
1
2
3
左约翰1
夏娃b 2
Felix c 3
答案 0 :(得分:1)
迭代元素,将它们存储到数组数组中,重置每个Exit
上的外部数组的索引:
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
my @arr = qw(John Eva Felix Exit a b c Exit 1 2 3);
my @out;
my $index = 0;
for (@arr) {
if ('Exit' eq $_) {
$index = 0;
} else {
push @{ $out[$index++] }, $_;
}
}
say join ' ', @$_ for @out;
如果输入行的长度不同,则可以分配给数组中的特定元素:
#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };
my @arr = qw(John Eva Felix Exit a b c d e f Exit 1 2 3 4);
my @out;
my $outer = 0;
my $inner = 0;
for (@arr) {
if ('Exit' eq $_) {
$outer = 0;
++$inner;
} else {
$out[$outer++][$inner] = $_;
}
}
say join "\t", map $_ // q(), @$_ for @out;