Я заметил некоторое любопытное поведение с командой Perl split, особенно в тех случаях, когда я ожидал, что результирующий массив будет содержать пустые строки '', но на самом деле это не так.
Например, если у меня естьразделитель (и) в конце (или начале) строки, результирующий массив не имеет пустой строки (строк) '' как последний (или первый) элемент.
Пример:
@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