Python と Perlの split() の maxsplit の違い

Python は maxsplit + 1 個に分けるのに対して、 Perl は maxsplit 個に分ける。
Python は指定した数と、残りに分けるイメージ。Perlは指定した数に分けるイメージ。


Python

>>> a = "aaa bbb ccc"
>>> a.split(" ", 0)
['aaa bbb ccc']
>>> a.split(" ", 1)
['aaa', 'bbb ccc']
>>> a.split(" ", 2)
['aaa', 'bbb', 'ccc']
>>> a.split(" ", 3)
['aaa', 'bbb', 'ccc']


Perl

#!/usr/bin/perl

use strict;
use warnings;

my $a = "aaa bbb ccc";
for(my $i = 0; $i <= 3; $i++){ 
    my @b = split " ", $a, $i;
    print "split $i => ";
    print join(" , ", @b), "\n";
}
split 0 => aaa , bbb , ccc
split 1 => aaa bbb ccc
split 2 => aaa , bbb ccc
split 3 => aaa , bbb , ccc