Perl分割函数 - 连续分隔符

时间:2011-01-24 21:11:56

标签: perl split delimiter

我正在使用split函数拆分文件中的每条记录。比如,分隔符是$

my @fields = split(/\$/,$record);

如果每条记录有4个字段,并且某些字段为空,则有2个连续的美元符号,如下所示:

abc$efg$ehd$rty
abc$$$

split不适用于第二条记录,因为在拆分后,只有2个字段,而不是4个字段。

知道如何解决这个问题,或者是否有更好的选择?

1 个答案:

答案 0 :(得分:11)

来自split documentation

  

如果LIMIT为负数,则将其视为指定了任意大的LIMIT。

这意味着如果您执行以下操作:

my @fields = split( /\$/, $record, -1 );

...然后你会得到列表中最后三个条目的空字段。

#!perl

use strict;
use warnings;
use Data::Dumper;

my $string = 'abc$$$';
my @fields = split( /\$/, $string, -1 );
print Dumper \@fields;

打印:

$VAR1 = [
          'abc',
          '',
          '',
          ''
        ];
相关问题