У меня есть массив строк, на котором я хотел бы использовать функцию соединения. Однако я хотел бы снабдить префиксом каждую строку ту же строку. Я могу сделать это в одной строке в противоположность итерации через массив сначала и изменению каждого значения перед использованием соединения?
На самом деле это немного более хитро. Префикс не является частью разделителя соединения. При значении, использовали ли Вы префикс как "цифра -" на массиве (1,2,3,4,5), Вы захотите получить этот результат: цифра 1, цифра 2, цифра 3, цифра 4, цифра 5
Этот код:
my @tmp = qw(1 2 3 4 5);
my $prefix = 'num-';
print join "\n", map { $prefix . $_ } @tmp;
дает:
num-1
num-2
num-3
num-4
num-5
Просто сделайте префиксную часть соединения:
my @array = qw(a b c d);
my $sep = ",";
my $prefix = "PREFIX-";
my $str = $prefix . join("$sep$prefix", @array);
Вы также можете использовать карту для префикса, если хотите:
my $str = join($sep, map "$prefix$_", @array);