在Perl中,如何在将每个元素括在括号中之后连接数组的元素?

Jea*_*ean 6 arrays perl join

我试图加入Perl数组的元素.

@array=('a','b','c','d','e');
$string=join(']',@array);
Run Code Online (Sandbox Code Playgroud)

会给我的

$string="a]b]c]d]e";
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以很快得到

$string="[a][b][c][d][e]";
Run Code Online (Sandbox Code Playgroud)

FMc*_*FMc 26

另一种方法,使用sprintf.

my $str = sprintf '[%s]' x @array, @array;
Run Code Online (Sandbox Code Playgroud)

  • 第一个数组 - 由于是"x"`运算符的第二个操作数 - 在标量上下文中进行计算,因此是数组中的元素数.它们的第一个表达式变为:"[%s]"重复N次(字符串"x"运算符的含义).第二个@array只是传递给sprintf的参数列表 (8认同)

msc*_*cha 13

这有两个选择:

#!/usr/bin/perl

use strict;
use warnings;

my @array = 'a' .. 'e';
my $string = join('', map { "[$_]" } @array);
my $string1 = '[' . join('][', @array) . ']';
Run Code Online (Sandbox Code Playgroud)