我正在使用split
函数拆分文件中的每条记录。比如,分隔符是$
。
my @fields = split(/\$/,$record);
如果每条记录有4个字段,并且某些字段为空,则有2个连续的美元符号,如下所示:
abc$efg$ehd$rty
abc$$$
split
不适用于第二条记录,因为在拆分后,只有2个字段,而不是4个字段。
知道如何解决这个问题,或者是否有更好的选择?
答案 0 :(得分:11)
如果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',
'',
'',
''
];