我需要知道在单个 foreach 循环中多个数组的正确语法。
在 TCL 中,我们可以在一个 foreach 循环中有多个列表。但是如何用 perl 做到这一点呢?
#TCL eg:
foreach i $a j $e {
}
最佳答案
List::MoreUtils 的当前版本模块提供了一个 zip_unflatten
命令,它将两个(或更多)数组组合成一个数组,其中包含对每个列表的第一个元素的数组的引用,然后是第二个,依此类推:
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
use List::MoreUtils 'zip_unflatten';
my @a = 1 .. 4;
my @e = 5 .. 9;
my @z = zip_unflatten(@a, @e);
for my $pair (@z) {
my $i = $pair->[0] // '-';
my $j = $pair->[1] // '-';
say "$i\t$j";
}
(我在这里使用的//
运算符是“defined-OR”,它与||
基本相同,只是它作用于变量是否与其相关left 有一个定义的值,而不是它是否有一个真实的值。)
关于perl - perl中单个foreach循环中多个数组的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54528381/