Jaka jest różnica między for i foreach w Perlu?

W języku programowania Perl są słowa kluczowe for i foreach. Są one wykorzystywane do tego, aby tworzyć cykle.

Nie ma między nimi żadnej różnicy. Wszędzie zamiast for zawsze można użyć foreach i zamiast foreach zawsze można użyć for.

Ale jest zalecenie. W Perlu są 2 rodzaje cykli, które można zrobić za pomocą for lub foreach. Zalecenie polega na tym, że dla każdego typu cyklu zawsze używać ich słowo kluczowe. Dla cyklu podobnego do pętli w języku C używać tylko for, a dla innych cykli używać tylko foreach. Jeśli po tej prostej zasady nie pojawia się pytanie, po co stosować, a czytać kod staje się nieco łatwiejsze.

Cykl jak w języku C.

Po języka programowania C ten typ cyklu w Perl wygląda bardzo znajomo.

Po for w nawiasach idzie 3 fragmentu kodu:

  • wartość początkowa
  • sprawdzanie
  • zmiana
▶ Run
#!/usr/bin/perl

for (my $i=0; $i < 3; $i++) {
    warn $i;
}

To kod będzie działać dokładnie tak samo jest zamiast for użyć foreach. Ale jest rekomendacja dla tego typu cykl zawsze używać tylko for i nie używać foreach.

Cykl — za dużo elementów

Drugi typ cyklu który może być napisany z użyciem for lub foreach w Perl — to za dużo elementów na liście. Ten typ cyklu zupełnie nie podobny do tego co jest w języku programowania C.

▶ Run
#!/usr/bin/perl

foreach my $el (1, 2, 3) {
    warn $el;
}

Jeśli napisać for zamiast foreach, to ten cykl będzie działać dokładnie tak samo. Ale jest rekomendacja dla tego typ cyklu zawsze używać tylko foreach i nie używać for.

Postinkrementacja cykl

Odmiana poprzedniego cyklu. Ta opcja też będzie działać tak samo i w przypadku for i foreach, ale rekomendacja w tym przypadku użyć tylko foreach.

▶ Run
#!/usr/bin/perl

warn $_ foreach (1, 2, 3);

Inne artykuły