in reply to discussion: What should split( /PATTERN/, EXPR, 0 ) return better?


UPDATE
please see my other post here: Re: discussion: What should split( /PATTERN/, EXPR, 0 ) return better? (LIMIT is consistent! ) which makes most of the following reasoning obsolete (the code still works)


Again I was struggling to understand what your question is (or rather your meditation).

Yes I agree that it's not very orthogonal, if LIMIT > 0 is a count and LIMIT == 0 rather means undef like in "No Limit" .*

I don't see where this concept stems from, probably some sed or awk semantic, (probably because undef is missing there ?)²

But I agree with afoken that it's too late to change it.

Anyway I would never have tried to solve it that way, rather

DB<1> $str = join " ", 1..5 DB<2> for $k (0..6) { my $sum=0; $sum+= $_ for (split ' ', $str)[0.. +$k-1] ; print "$sum\n";} 0 1 3 6 10 15 15

or rather

DB<6> @split = (split ' ', $str) DB<7> for $k (0..6) { my $sum=0; $sum+= $_ for @split[0..$k-1]; prin +t "$sum\n";} 0 1 3 6 10 15 15

Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!

update

*) and you shouldn't forget that LIMIT =-1 has even one more non-count meaning

²) couldn't find similarities in awk or sed, but the reason is most probably that 0 and undef are both false in Perl, and the designers wanted to keep the symmetry.

  • Comment on Re: discussion: What should split( /PATTERN/, EXPR, 0 ) return better? (split-LIMIT = count and/or flag)
  • Select or Download Code