【发布时间】:2018-11-20 10:19:13
【问题描述】:
我有以下字符串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 个数组,以获得一个输出数组,其中我首先有每个数组的第一行,每个数组的第二行,依此类推......最后看起来像这样:
A
F
D
I
B
G
E
J
C
H
如何做到这一点?
【问题讨论】:
-
您的
split会将空格间隔添加为单独的元素。但你似乎知道这一点,正如你所说的@1 = A, ,B, ,C等。很难相信这是你想要的,所以请确认。 -
你确定你需要的不是 Perl 教程吗?您似乎在非常基本的概念上磕磕绊绊。
-
您已被引导至模块
List::MoreUtils,它的功能zip/mesh在您之前的相同问题中。该问题被标记为重复,因为它已被回答。再次发布相同的问题将不会完成任何事情。如果您在将建议的解决方案应用于您的问题时遇到问题,请询问有关您尝试过的代码的问题。这就是这个网站的用途。不是为了获取免费代码。 -
您在对上一个问题的评论中提到您尝试了链接副本中的第一个解决方案,但它不适合您。请edit您的问题包括您尝试过的代码、您得到的输出以及任何错误。或者,正如@TLP 多次提到的那样,只需使用
List::MoreUtils中的zip函数......这可能会更容易。