Я вижу их используемые попеременно.Какая разница?
Нет никакой разницы. Из perldoc perlsyn :
Ключевое слово
foreach
на самом деле является синонимом ключевого словаfor
, поэтому вы можете использоватьforeach
для удобства чтения илидля
для краткости.
Я вижу, что они используются как взаимозаменяемые.
Нет никакой разницы, кроме синтаксиса.
С момента своего появления в perl-2.0, foreach
стал синонимом for
. Это кивок в сторону команды foreach
в оболочке C.
В моем собственном коде, в редких случаях, когда я использую цикл for в стиле C, я пишу
for (my $i = 0; $i < $n; ++$i)
а для итерации по массиву пишу
foreach my $x (@a)
Я нахожу, что так он лучше читается в моей голове.
Четыре буквы.
Они функционально идентичны, просто пишутся по-разному.
В случае «для» вы можете использовать три шага.
1) Инициализация 2) Проверка условий 3) Увеличение или уменьшение
Но в случае «foreach» вы не можете увеличивать или уменьшать значение. Значение приращения всегда равно 1.