Я замечал какое-то любопытное поведение с командой разделения Perl, особенно в тех случаях, когда я ожидал, что результирующий массив будет содержать пустые строки '', но на самом деле этого не делает.
Например, если у меня есть разделитель в конце (или начале) строки, результирующий массив не имеет пустую строку (s) '' в качестве последнего (или первого) элемента.
Пример:
@s = split(/x/, 'axb')
создает 2 элемента массива ['a', 'b']
@s = split(/x/, 'axbx')
создает тот же массив
@s = split(/x/, 'axbxxxx')
создает тот же массив
Но как только я положил что-то в конец, все эти пустые строки выглядят как элементы:
@s = split(/x/, 'axbxxxxc')
создает массив из 6 элементов ['a', 'b', '', '', '', 'c']
Поведение аналогично, если разделители находятся в начале.
Я ожидал бы пустой текст между, до или после разделителей, чтобы всегда создавать элементы в расколе. Может ли кто-нибудь объяснить мне, почему раскол ведет себя так, как в Perl? Я просто пробовал то же самое в Python, и он работал, как ожидалось.
Примечание: Perl v5.8