我正在使用 split
函数来分割文件中的每个记录。假设分隔符是 $
。
my @fields = split(/\$/,$record);
如果每个记录都有4个字段,如果某些字段为空,则会出现连续的2个美元符号,如下所示:
abc$efg$ehd$rty
abc$$$
split
对于第二条记录无法工作,因为在分割后只有两个字段,而不是四个。
有什么修复的方法,或者是否有更好的选择?
来自split
文档:
如果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',
'',
'',
''
];