perl – 当最后一个字符是终止符时,解决split函数问题

前端之家收集整理的这篇文章主要介绍了perl – 当最后一个字符是终止符时,解决split函数问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有20个字段的这一行数据:

my $data = '54243|601|0|||0|N|0|0|0|0|0||||||99582|';

我用这个来分割数据:

my @data = split ('\|'),$data;

但是,不是20个数据,而是只有19个:

print scalar @data;

如果最后一个字符是|,我可以手动将空字符串推送到@data但我想知道是否有更美好的方式.

解决方法

my @data = split /\|/,$data,-1;

-1告诉split包含空的尾随字段.

(正则表达式周围的括号不正确,导致$data不被视为split的参数.另外,有一个例外,split的第一个参数总是一个正则表达式,所以最好将它指定为正则表达式而不是一个正则表达式将被解释为正则表达式的字符串.)

猜你在找的Perl相关文章