我使用split函数来分割文件中的每个记录.比如说,分隔符是$.
my @fields = split(/\$/,$record);
如果每个记录有4个字段,并且某些字段为空,则有2个连续的美元符号,如下所示:
abc$efg$ehd$rty abc$$$
split不适用于第二条记录,因为在拆分后,只有2个字段,而不是4个字段.
知道如何解决这个问题,或者是否有更好的选择?
解决方法
从
split
documentation:
If LIMIT is negative,it is treated as if an arbitrarily large LIMIT had been specified.
这意味着如果您执行以下操作:
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','','' ];