我要找的Perl相当于下面的PHP代码: -的Perl相当于PHP的foreach循环
foreach($array as $key => $value){
...
}
我知道我可以做一个foreach循环,如下所示: -
foreach my $array_value (@array){
..
}
哪将使我能够处理数组值 - 但我也想使用这些键。
我知道有一个Perl哈希,它允许你设置键值对,但我只想索引号,数组自动给你。
我要找的Perl相当于下面的PHP代码: -的Perl相当于PHP的foreach循环
foreach($array as $key => $value){
...
}
我知道我可以做一个foreach循环,如下所示: -
foreach my $array_value (@array){
..
}
哪将使我能够处理数组值 - 但我也想使用这些键。
我知道有一个Perl哈希,它允许你设置键值对,但我只想索引号,数组自动给你。
尝试:
my @array=(4,5,2,1);
foreach $key (keys @array) {
print $key." -> ".$array[$key]."\n";
}
Works的哈希和数组。 在数组的情况下,$ key包含索引。
我猜最接近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
}
如果你正在使用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
谢谢。我的问题解决了!我真的不想对最佳答案投票,因为他们都是对的。 – fbc
如果我是你,我会接受flesk的回答。 “每个”解决方案比其他任何示例都更接近PHP版本。 –