7

我正在寻找与以下 php 代码等效的 Perl:-

foreach($array as $key => $value){
...
}

我知道我可以像这样做一个 foreach 循环:-

foreach my $array_value (@array){
..
}

这将使我能够使用数组值做事——但我也想使用键。

我知道有一个 Perl 散列可以让你设置键值对,但我只想要数组自动给你的索引号。

4

3 回答 3

15

如果您使用的是 Perl 5.12.0 或更高版本,则可以each在数组上使用:

my @array = 100 .. 103;

while (my ($key, $value) = each @array) {
    print "$key\t$value\n";
}

输出:

0       100
1       101
2       102
3       103

perldoc 每个

于 2012-05-16T10:47:01.847 回答
7

我猜最接近的 Perl 是这样的:

foreach my $key (0 .. $#array) {
  my $value = $array[$key];

  # Now $key and $value contains the same as they would in the PHP example
}

从 Perl 5.12.0 开始,您可以keys在数组和散列上使用该函数。这可能更具可读性。

use 5.012;

foreach my $key (keys @array) {
  my $value = $array[$key];

  # Now $key and $value contains the same as they would in the PHP example
}
于 2012-05-16T10:41:58.350 回答
7

尝试:

my @array=(4,5,2,1);
foreach $key (keys @array) {
    print $key." -> ".$array[$key]."\n";
}

适用于哈希和数组。在数组的情况下, $key 保存索引。

于 2012-05-16T10:13:59.383 回答