Hvad er forskellen mellem for og foreach i Perl?

I programmeringssproget Perl er nøgleord for og foreach. De er vant til at lave sløjfer.

Mellem dem er der ingen forskel. Overalt er for kan du altid bruge foreach og er foreach kan du altid bruge for.

Men der er en anbefaling. Perl har 2 typer af cykler, som kan gøres ved hjælp af for eller foreach. Anbefalingen er, at for hver type af cyklus til altid at bruge din det centrale ord her. For-løkke, der svarer til loop i C-sproget, kun at bruge for, og for de andre cykler kun foreach. Hvis du følger denne simple regel så er der spørgsmålet om, hvornår de skal bruge det, og læser koden bliver lidt lettere.

Cyklus som i C sproget

Efter C programming language denne type løkke i Perl ser meget bekendt.

Efter for 3 i parentes er kodestykke:

  • den oprindelige værdi
  • check
  • skift
▶ Run
#!/usr/bin/perl

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

Dette samme kode, som vil arbejde på samme måde er der for bruge foreach. Men der er en anbefaling for denne type cyklus brug kun for og ikke bruge foreach.

Loop — iterere gennem

Den anden type af cyklus, som kan være skrevet med for eller foreach i Perl er iterere gennem elementerne i listen. Denne type cyklus er ganske svarende til hvad der er i C-programmering sprog.

▶ Run
#!/usr/bin/perl

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

Hvis du skriver for er foreach, så er dette loop vil køre nøjagtig den samme. Men der er en anbefaling for dette type cyklus brug kun foreach og ikke bruge for.

Postfix cyklus

En variant af den foregående cyklus. Denne løsning ville også virke på samme måde i tilfælde af for og foreach, men anbefalingen i dette tilfælde til kun at bruge foreach.

▶ Run
#!/usr/bin/perl

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

Andre artikler