Шаблон, переданный в split
, определяет, что отделяет от того, что вы хотите. Если вы хотите использовать сплит, вы бы использовали что-то вроде
my @pairs = split /(?(?{ pos() % 2 })(?!))/, $string;
или
my @pairs = split /(?=(?:.{2})+\z)/s, $string;
Это довольно плохие решения. Лучшие решения включают в себя:
my @pairs = $string =~ /..?/sg; # Accepts odd-length strings.
my @pairs = $string =~ /../sg;
my @pairs = unpack '(a2)*', $string;