除非字段等于,否则打印

时间:2014-01-10 21:32:27

标签: arrays perl join

我有一个我想按字段解析的数据列表。

输入:

asdlfj  sd;lfkjas   as;dlkfj    josh

ds;lakfjsd;lk           

asdlfj  sd;lfkjas   as;dlkfj    josh

safkl;j

sdlakfjsd;              

asdlfj  sd;lfkjas   as;dlkfj    josh

asdfl;kj            
1   sd;lfkjas   as;dlkfj    josh

2   sd;lfkjas   as;dlkfj    jim

3   sd;lfkjas   as;dlkfj    joe

代码:

$my_names = qr/joe|jim|josh/
$my_numbers = qr/[0-9]/;

while (<>) {
    unless($F[3] eq $my_names && $F[0] == $my_numbers)
    {
        print;
    }
}

我想要做的是打印,除非每个第4个字段[4]等于$my_names或除非每个第一个字段[0]等于$my_numbers

我不太确定如何从我文件中的字段创建数组。

我猜这可能与“加入”功能有关,但我不太确定。顺便说一句,这些字段由制表符分隔。

1 个答案:

答案 0 :(得分:0)

您需要split,这与join相反。

while (<>) {
    my @F = split;   # with no arguments, means:  split /\s+/, $_
    ...