对我来说,看起来perl split永远不会给出结果("")
,即单个元素列表的单个元素是空字符串的单元素列表。无论如何 - 任何输入,对split
的任何参数。任何人都可以显示吗?如果不是,这是一个功能还是错误?什么输入和参数将perl分裂给结果(“”),如果有的话?
我想split
能够保持一致性,但很可惜:
注意分裂计算结果为空字符串总是 产生零个域,无论指定限制的EXPR。
http://perldoc.perl.org/functions/split.html
例如为:
$ echo ""|perl -ne 'chomp;print 0+split/x/,$_,-1'
0
$ echo "x"|perl -ne 'chomp;print 0+split/x/,$_,-1'
2
$ echo "xx"|perl -ne 'chomp;print 0+split/x/,$_,-1'
3
$ echo "xxx"|perl -ne 'chomp;print 0+split/x/,$_,-1'
4
看起来像一个功能给我。你怎么能把一件事或多件事分开? –
当'split'不能拆分时(无法在线上匹配正则表达式),Perl应该返回一个包含整个'$ _'的元素。当'$ _'为'“”'时,Perl打破了“承诺”,而是返回一个空列表。 –
在Perl中,空字符串'“”'和空列表'()'表示相同的东西,这是错误的。 –