在Perl中使用join时追加前缀

在Perl中使用join时追加前缀,perl,join,Perl,Join,我有一个字符串数组,我想在其上使用join函数。但是,我想用相同的字符串作为每个字符串的前缀。我可以在一行中完成这项工作,而不是先遍历数组,然后在使用join之前更改每个值吗 实际上这有点棘手。前缀不是联接分隔符的一部分。这意味着,如果在(1,2,3,4,5)数组中使用类似于“num-”的前缀,则需要得到以下结果:num-1、num-2、num-3、num-4、num-5只需将前缀作为联接的一部分: my @array = qw(a b c d); my $sep = ","; my $pref

我有一个字符串数组,我想在其上使用join函数。但是,我想用相同的字符串作为每个字符串的前缀。我可以在一行中完成这项工作,而不是先遍历数组,然后在使用join之前更改每个值吗


实际上这有点棘手。前缀不是联接分隔符的一部分。这意味着,如果在(1,2,3,4,5)数组中使用类似于“num-”的前缀,则需要得到以下结果: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);
如果您愿意,也可以使用map进行前缀设置:

my $str = join($sep, map "$prefix$_", @array);
此代码:

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

为什么要将单个字符串存储到数组中?我本来打算发布一个答案,但你的答案是最好的,所以我修改了你的格式。:)将其更改为使用不太容易混淆的块形式的地图,希望您不介意:)