Нет, похоже (в основном) работает как задумано.Следующий код:
use strict;
use warnings;
$_="GGGGG-SOMETHING-ELSE-GGG-LAST";
my @a=split(/G{2,}/,$_);
print join(",",@a) . "\n";
производит вывод:
,-SOMETHING-ELSE-,-LAST
Проблема в том, что существует первый элемент, который является пустой строкой.Итак, чтобы исправить это, вы можете сделать что-то вроде:
use strict;
use warnings;
$_="GGGGG-SOMETHING-ELSE-GGG-LAST";
my @a=grep{$_ ne ""}(split(/G{2,}/,$_));
print join(",",@a) . "\n";
И это производит то, что вы хотите:
-SOMETHING-ELSE-,-LAST