Добавление префикса при использовании соединения в Perl - PullRequest
11 голосов
/ 28 апреля 2010

У меня есть массив строк, для которых я хотел бы использовать функцию соединения. Тем не менее, я хотел бы добавить к каждой строке одну и ту же строку. Могу ли я сделать это в одной строке, в отличие от перебора массива и изменения каждого значения перед использованием объединения?

На самом деле это немного сложнее. Префикс не является частью разделителя соединений. Это означает, что если вы используете префикс типа «num-» в массиве (1,2,3,4,5), вам нужно получить такой результат: num-1, num-2, num-3, num-4 , Num-5

Ответы [ 2 ]

22 голосов
/ 28 апреля 2010

Этот код:

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
3 голосов
/ 28 апреля 2010

Просто сделайте префикс частью объединения:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...