使用数组索引到另一个数组

时间:2015-07-26 10:07:21

标签: arrays perl

我有两个数组,我们称之为@a1@a2。我尝试做的是使用@a2中的值作为索引从@a1获取元素。我目前的尝试无法正常运作。

foreach (@a1) {
    print $a2[$_] . "at" . $_;
}

这仅打印$_,但不打印$a2[$_]

我觉得这有一个微不足道的解决方案,但我找不到它。

2 个答案:

答案 0 :(得分:3)

您拥有的代码没有任何问题。我测试了一个小脚本,它按预期工作。 Asi我在评论中建议,尝试使用Data::Dumper之类的东西来查看循环之前数组中的内容。

use strict;
use warnings;
use Data::Dumper;

my @a1 = (0..4);
my @a2 = ("a".."e");

print Dumper \@a1, \@a2;

foreach (@a1){
 print $a2[$_]." at ".$_."\n";
}

<强>输出

$VAR1 = [
          0,
          1,
          2,
          3,
          4
        ];
$VAR2 = [
          'a',
          'b',
          'c',
          'd',
          'e'
        ];
a at 0
b at 1
c at 2
d at 3
e at 4

答案 1 :(得分:0)

只要第一个数组的值是第二个数组中的有效地址,您的代码就没有理由不起作用。但如果您真正想做的只是获取第二个数组的值和地址,您可以这样做:

for my $i (0..$#a2) {
    print "$i: $a2[$i]","\n";
}

$#a2是数组的最后一个元素地址。