如何将多个数组传递给Perl中的'foreach'循环?

no1*_*no1 2 arrays perl foreach

我想把两个数组中的项目写入文件,比如

 @a = ('1', '2', '3')
 @b = ('0.1', '0.2', '0.3')
Run Code Online (Sandbox Code Playgroud)

我希望我的输出像这样:

1 0.1
2 0.2
3 0.3
Run Code Online (Sandbox Code Playgroud)

在文件中.

我尝试使用两个foreach循环,这显然是错误的,

 foreach my $a (@a) {
    foreach my $b (@b) {
        print FP "$a $b \n";
    }
 }
Run Code Online (Sandbox Code Playgroud)

这是错的.如何将多个数组传递给foreachPerl中的循环?

Сух*_*й27 8

如果你想输出的所有元素@a,并@b在并行,可以通过其中一个所有指数环(数组大小相同,因此它并不重要),并用它来访问实际的元素($a[$i]$b[$i])

foreach my $i (0 .. $#a) {
  print "$a[$i] $b[$i] \n";
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 7

@a=('1','2','3');
@b=('0.1','0.2','0.3');

print "$a[$_] $b[$_] \n" for (0 .. $#a);
Run Code Online (Sandbox Code Playgroud)

当然这假设@a和@b长度相等.