Функция join

Функция join не использует шаблоны, но выполняет операцию, обратную по отношению к split. Если split разбивает строку на фрагменты, join «склеивает» набор фрагментов в одну строку. Вызов join выглядит так:

my $result = join $glue, @pieces;

Первый аргумент join определяет произвольную соединительную строку. Остальные аргументы определяют список фрагментов. Функция join вставляет соединительную строку между парами фрагментов и возвращает итоговую строку:

my $x = join ":", 4, 6, 8, 10, 12; # $x содержит "4:6:8:10:12"

В этом примере объединяются пять фрагментов, поэтому между ними вставляются четыре соединительные строки (двоеточия). Соединительная строка добавляется только между элементами, но не в начале или в конце списка. Это означает, что количество соединительных строк всегда на 1 меньше количества элементов в списке. Если список не содержит хотя бы двух элементов, соединительных строк вообще не будет:

my $y = join "foo", "bar"; # Получается только "bar",
# соединитель foo лишний
my @empty; # Пустой массив
my $empty = join "baz", @empty; # Элементов нет, пустая строка

Используя переменную $x из предыдущего примера, мы можем разбить строку и собрать ее заново с другим разделителем:
my @values = split /:/, $x; # @values содержит (4, 6, 8, 10, 12)
my $z = join "-", @values; # $z содержит "4-6-8-10-12"

Хотя split и join хорошо работают в сочетании друг с другом, не забывайте, что первый аргумент join всегда содержит строку, а не шаблон.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
m// в списочном контексте
Глобальная замена (/g)
Другие возможности регулярных выражений
Другие ограничители
Замена с использованием оператора s///