Perl:用特定的变量字符串分隔数组值

时间:2017-11-03 08:31:37

标签: arrays perl

需要有关如何将数组数据分成特定字符串的不同列的建议。以下示例基于“EXIT”分割数据&打印到不同的列。感谢。

示例:

输入


约翰
伊娃
费利克斯
退出

b
ç
退出
1
2
3

输出

左约翰1
夏娃b 2
Felix c 3

1 个答案:

答案 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;