在Perl中,如何循环变量名?

Sau*_*ava 0 perl for-loop

我有N数组,我想在单个for循环中打印它们的第一个元素

我的代码:

@arr1=qw(1..5);
@arr2=qw(6..10);
...
@arrN=qw(...);
for($i=1;$i<=$N;$i++)
{
print "$arr[$i][0]";
}
Run Code Online (Sandbox Code Playgroud)

Gab*_*s00 5

当你发现你需要知道0 ... N个不同变量的名称时.是时候考虑你可能做错了.

数组= 0的列表.N值,可以是顺序的

Hash = 0的列表.. N个命名值

对于你的数组,除非你真的想要转换为字符串,否则不要qw()只使用裸()

请参阅下面的解决方案,您需要一个数组数组:#!/ usr/bin/perl

use strict;
use warnings;

my $n = 10;
my @nArrays;

#fills the nArrays list with array_refs
for my $num(0 .. $n){
  push @nArrays, [($num .. $num+5)]; 
}

#Print out the arrays, one per row, long way
for my $array (@nArrays){
  print $array->[0], "\n";
}
Run Code Online (Sandbox Code Playgroud)