2

次のように、2 つの配列のアイテムをファイルに書き込みたい

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

次のような出力が必要です。

1 0.1
2 0.2
3 0.3

ファイルで。

foreach明らかに間違っている2つのループを使用してみましたが、

 foreach my $a (@a) {
    foreach my $b (@b) {
        print FP "$a $b \n";
    }
 }

これは間違っています。foreach複数の配列をPerlのループに渡すにはどうすればよいですか?

4

2 に答える 2

8

@aと のすべての要素を並列に出力したい場合は@b、そのうちの 1 つのすべてのインデックスをループし (配列は同じサイズなのでどちらでもかまいません)、それを使用して実際の要素 ($a[$i]$b[$i])にアクセスできます。

foreach my $i (0 .. $#a) {
  print "$a[$i] $b[$i] \n";
}
于 2013-10-22T08:43:48.623 に答える
7
@a=('1','2','3');
@b=('0.1','0.2','0.3');

print "$a[$_] $b[$_] \n" for (0 .. $#a);

もちろん、これは @a と @b が等しい長さであることを前提としています。

于 2013-10-22T08:45:23.300 に答える