我正在寻找与以下php代码等效的Perl: -
foreach($array as $key => $value){
...
}
我知道我可以像这样做一个foreach循环: -
foreach my $array_value (@array){
..
}
这将使我能够使用数组值进行操作 - 但我也想使用这些键。
我知道有一个Perl哈希允许你设置键值对,但我只想要数组自动给你的索引号。
答案 0 :(得分: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
答案 1 :(得分:7)
尝试:
my @array=(4,5,2,1);
foreach $key (keys @array) {
print $key." -> ".$array[$key]."\n";
}
适用于哈希和数组。 在Arrays的情况下,$ key保存索引。
答案 2 :(得分: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
}