どのように配列Perl

課題です。 のコードは、Perlプログラムの配列 @arr (最初の三文字から"配列"). この配列は一部の値です。 として安心してご利用いただけ、すべての配列要素を何らかの行動と各項目を設定します。

の配列を使用 foreach

そうすることによってこの問題を解決するために使用 foreach. ここではサンプルプログラム:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

foreach my $el (@arr) {
    warn $el;
}

で非常に簡単です。 ある配列になります。 次に作成した変数 $el (略称を element). サイクル foreach について高く評価されての変数の最初の要素の配列(この例ではこの番号は1)です。 実行ループの体 warn $el; —こ の価値を画面に表示します。 サイクル foreach に入の可変 $el の次の値の配列 再度ループを実行します。 これまで繰り返されるループ本体が実行されませんすべての配列です。

の配列をループ for

ここではサンプルプログラム歩き方は、Perlの配列をループと同様のループは、C言語:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

for (my $i = 0; $i < @arr; $i++) {
    warn $arr[$i];
}

います。 ある配列@arr. そして新しい変数 $i に譲渡価値0(0のindex 最初の要素は、Perlの配列)の それを実行するループ体 warn $arr[$i];. その後は、変数 $iオペレーター ++ が増加します。 その後、チェック条件に $i < @arr. の場合 の条件がtrueを返すと、すべてを繰り返します。

このソリューションはやや複雑化を使用してソリューションを foreach. する必要があるの境界値です。 合していること自体が間違ってい 書チェッることができますが、スキップの最後の値 又はアクセスの存在しない要素の最後の要素の配列(この処理に戻りま undef).

の例は以下のプログラムと同様、使用条件 for:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

for (my $i = 0; $i <= $#arr; $i++) {
    warn $arr[$i];
}

forの 配列で使用の場合、ループの身体だけでなく要素の値は、その番号です。 この場合 利用できる foreach サイクルを手動で露出を変index:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);
my $i = 0;

foreach my $el (@arr) {
    warn "index: $i value: $el";
    $i++;
}

このオプションであり下記のような様々な分野の人が影響を受けにくく、ハーバとの境界値とします。 があり上げていきたいと考えている同じことを言と each.

の配列を使用 while および each

キーワード each を使用しないことを非常によく、ほとんどで使用される で使用されているHesham. これまでほとんど知られていないが、 each に使用できる の配列の要素のインデックスの要素そのものです。 こちらは 前のコードを書く each:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

while (my ($i, $el) = each @arr) {
    warn "index: $i value: $el";
}

each に適用できる配列からPerl5.12. 行った場合、このコードがありま 以前のバージョンのPerlでエラー:

Type of arg 1 to each must be hash (not private array) at script.pl line 5, near "@arr) "
Execution of script.pl aborted due to compilation errors.

関連する話題

その他の記事