Quelle est la différence entre for et foreach en Perl?

Dans le langage de programmation Perl il ya des mots clés for et foreach. Ils sont utilisés pour créer des cycles.

Entre eux il n'y a aucune différence. Partout au lieu de for , vous pouvez toujours utiliser foreach et au lieu de foreach , vous pouvez toujours utiliser for.

Mais il y a une recommandation. En Perl, il existe 2 types de cycles que l'on peut faire avec l'aide de for ou foreach. La recommandation consiste en ce que pour chaque type de cycle de toujours utiliser votre le mot-clé. Pour le cycle similaire à la boucle en langage c d'utiliser uniquement for, et pour les autres cycles d'utiliser seulement foreach. Si vous suivez cette règle simple ce n'est pas une question se pose quand les utiliser et lire le code est un peu plus facile.

Le cycle comme en langage c

Après le langage de programmation c ce type de boucle en Perl semble très familier.

Après for entre parenthèses va 3 extrait de code:

  • la valeur initiale
  • vérification
  • le changement
▶ Run
#!/usr/bin/perl

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

C'est le même code fonctionne exactement de la même, il y a lieu de for utiliser foreach. Mais il y a une recommandation pour ce type de le cycle de toujours utiliser for et de ne pas utiliser foreach.

Le cycle de parcourir les éléments

Le deuxième type de cycle qui peut être écrit à l'aide d' for ou foreach en Perl est de parcourir les éléments dans la liste. Ce type de boucle n'est pas tout à fait semblable à ce qu'il y a dans le langage de programmation.

▶ Run
#!/usr/bin/perl

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

Si écrire for au lieu de foreach, ce cycle fonctionnera exactement de la même. Mais il y a une recommandation pour cela le type de cycle de toujours utiliser foreach et de ne pas utiliser for.

Le cycle de postfix

Une variante du cycle précédent. Cette option est également fonctionne de la même façon et dans le cas for et foreach, mais recommandation dans ce cas, utiliser seulement foreach.

▶ Run
#!/usr/bin/perl

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

Autres articles