我有以下字符串A B C D E F G H I J
。我想用它制作一个数组,所以我用这个
my @string = split/(\W)/, $text;
它工作正常,我得到一个20行的数组:
A
B
C
D
...
现在,我想将这个数组拆分成给定数量的碎片(在这种情况下假设为4),因此我想到4个较小的数组,每行5行,看起来像这样@ 1 = A, ,B, ,C
,@ 2 = ,D, ,E,
,@ 3 = F, ,G, ,H
和@ 4 = ,I, ,J,
。
最后,我想交错这4个数组,以获得一个输出数组,其中我首先得到每个数组的第一行,每个数组的第二行,依此类推......最后看起来像这样:< / p>
A
F
D
I
B
G
E
J
C
H
如何实现这一目标?
答案 0 :(得分:0)
在Perl中创建一个数组:
my @oldArray = (a, ,b, ,c, ,d, ,e, ,f, ,g, h, ,i, ,j, );
my @newArray1 = @oldArray[elemIndex1,elemIndex2,elemIndexN];
OR
my @newArray1 = @oldArray[firstElemIndex..lastElemIndex]
elemIndex
是newArray
数组中所需元素的索引。
firstElemIndex..lastElemIndex
。
要在数组末尾添加元素:
push(@interleavedArray,$newArray1[elemIndex]);
$newArray1[elemIndex]
是@newArray1
中要添加到@interleavedArray
的元素
按顺序添加元素:
只需做一个for循环:
for my $index (0..3){
push(@interleavedArray,$newArray1[$index]);
push(@interleavedArray,$newArray2[$index]);
push(@interleavedArray,$newArray3[$index]);
push(@interleavedArray,$newArray4[$index]);
}