Как сконкатенировать строки в Perl

Задача. В программе на языке Perl есть две переменных в которых содержатся строки. Нужно соединить (сконкатенировать) эти две строки для того чтобы получилась одна строка.

Решение — использовать оператор .

Для конкатенации строк в Perl используется оператор точка .. Вот пример кода:

▶ Run
#!/usr/bin/perl

my $str1 = 'Hello';
my $str2 = 'world';

print $str1 . $str2;

Программа выведет на экран строку 'Helloworld'. Чтобы текст лучше читался нужно сконкатенировать три элемента: две переменных и одну строку, написанную в коде программы (так называемый "строковой литерал"):

▶ Run
#!/usr/bin/perl

my $str1 = 'Hello';
my $str2 = 'world';

print $str1 . ', ' . $str2;

Конкатенация чисел

Оператор . прекрасен тем что он всегда воспринимает свои аргументы как строки. Есть языки программирования где для конкатенации используется оператор +, который также используется для сложения чисел. Из-за этого возникают ошибки что вместо соединения строк, происходит операция сложения. В Perl этой проблемы нет. Оператор . — это всегда конкатенация, вне зависимости от значения аргументов. Поэтому результат операции "2" . "2" точно такой же как результат операции 2 . 2, а именно строка 22, а не число 4.

Кроме оператора . существуют и другие способы как cоединить существующие переменные чтобы получить новую строчку.

Использовать интерполяцию

Если в коде Perl программы создать строку с помощью двойных кавычек, то переменные, которые написаны в этой строке будут заменены на значения этих переменных. Так что получить такой же результат как и в предыдущем примере можно с помощью такой программы:

▶ Run
#!/usr/bin/perl

my $str1 = 'Hello';
my $str2 = 'world';

print "$str1, $str2";

Использовать sprintf

Еще один способ, как можно соединить несколько строковых значений в строку — это использовать функцию sprintf. Вот пример кода:

▶ Run
#!/usr/bin/perl

my $str1 = 'Hello';
my $str2 = 'world';

print sprintf('%s, %s', $str1, $str2);

Первым аргументом в функцию sprintf передается строка с шаблоном, а дальше передаются элементы значения которых будут подставлены в шаблон. Для этого в шаблоне используются специальные маркеры. Самый простой маркер — это текст %s, этот маркер говорит что вместо него нужно просто подставить значение.

Другие статьи

Комментарии