燈明ブログ

現状は小池啓仁の応援ブログ

Perlの謎(その6):foreach文がfor文に

結論から言うと、Perlでは、for文とforeach文は同じ物なのです。
というか、for文のforは、foreachの省略形とのことです(ホントかな)。
と同じとはいいながら、for文とforeach文ではイメージが違います。

  • for文は、インデックスで回すイメージ
  • foreach文は、データ構造の各要素に対して各々回すイメージ

◆for文の基本

for (my $i = 1; $i < 10; $i++) {
    処理
}

◆foreach文の基本

foreach my $scalar (@array) {
    処理
}

◆for文とforeach文の可換

冒頭で述べたように、for文とforeach文は同じで可換なのです。

foreach (my $i = 1; $i < 10; $i++) {
    処理
}
for my $scalar (@array) {
    処理
}

で結論は、イメージを重んじる人はイメージ通りに、簡素にしたい人はfor文オンリーに、たぶん、foreach文オンリーは無しでしょう・・・たぶん。