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

試す:

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

ハッシュと配列で機能します。配列の場合、$key はインデックスを保持します。

于 2012-05-16T10:13:59.383 に答える
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 に答える