Perl 如何从List::MoreUtils反转zip/mesh?

Perl 如何从List::MoreUtils反转zip/mesh?,perl,Perl,我有两个阵列: @foo = (1, 2, 3, 4); @bar = ('A', 'B', 'C', 'D'); 如果我用mesh/zip从中压缩它们,我会得到以下结果: @zipped = (1, 'A', 2, 'B', 3, 'C', 4, 'D'); 如何向后执行此操作,即从@zipped开始如何获取@foo和@bar?列表::Util::pairs use List::Util 'pairs'; my @zipped = ('1', 'A', '2', 'B', '3', 'C'

我有两个阵列:

@foo = (1, 2, 3, 4);
@bar = ('A', 'B', 'C', 'D');
如果我用
mesh
/
zip
从中压缩它们,我会得到以下结果:

@zipped = (1, 'A', 2, 'B', 3, 'C', 4, 'D');
如何向后执行此操作,即从
@zipped
开始如何获取
@foo
@bar

列表::Util::pairs

use List::Util 'pairs';
my @zipped = ('1', 'A', '2', 'B', '3', 'C');
my ($foo, $bar) = pairs @zipped;
$foo
$bar
将分别引用包含
('1'..'3')
('A'..'C')
的数组

或者,如果有两个以上的数组,请使用List::MoreUtils::part:

use List::MoreUtils 'part';
my @zipped = ('1', 'A', 'a', '2', 'B', 'b', '3', 'C', 'c');
my $number_of_arrays = 3;

my $i = 0;
my @arrayrefs = part { $i++ % $number_of_arrays } @zipped;

事实上,这对我不起作用。。。它不承认“配对”是1.28版(2013年8月)中添加的实用工具的一部分;你可能有一个旧版本。在多年基本上没有任何特性更改之后,几年前新的东西开始添加到List::Util中。