Perl分割函数 - 连续的分隔符

4

我正在使用 split 函数来分割文件中的每个记录。假设分隔符是 $

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

如果每个记录都有4个字段,如果某些字段为空,则会出现连续的2个美元符号,如下所示:
abc$efg$ehd$rty
abc$$$

split 对于第二条记录无法工作,因为在分割后只有两个字段,而不是四个。

有什么修复的方法,或者是否有更好的选择?

1个回答

11

来自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',
          '',
          '',
          ''
        ];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接