Pra*_*thi 3 arrays string perl join
我有一个字符串数组,表示其长度可以是 1 到 20 之间的任何地方。我需要将数组的第 1 个 3 元素连接到一个字符串中。我用了。
@a = ("Hello","world","welcome");
$b = join(":",@a[0..2])
Run Code Online (Sandbox Code Playgroud)
这会产生所需的输出Hello:World:welcome
但是当数组的长度小于 3 时说 @a = ("hello","wolrd")
我得到Hello:world:作为输出。如果我有 1 个变量,我将Hello::作为输出。
我想根据数组的长度限制加入。有没有办法做到这一点?
使用 List::Util 1.50 或更高版本,您将获得head函数,这对此类事情非常有用,因为它最多只能返回列表中的元素数量。
use strict;
use warnings;
use List::Util 1.50 'head';
my @array = ('hello', 'world');
my $joined = join ':', head 3, @array; # hello:world
Run Code Online (Sandbox Code Playgroud)
该剪接功能可以作为一个-穷人的头/尾,但它需要一个数组具体且将删除从该阵列返回的元素。
use strict;
use warnings;
my @array = ('hello', 'world');
my $joined = join ':', splice @array, 0, 3; # hello:world
# @array is now empty
Run Code Online (Sandbox Code Playgroud)
还可以检查数组大小并加入你想要的,或者整个数组
my $joined = join ':', (@ary > 3 ? @ary[0..2] : @ary);
Run Code Online (Sandbox Code Playgroud)