Les structures de contrôle sont :
if (EXPR) BLOCK |
if (EXPR) BLOCK else BLOCK |
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK |
[LABEL] while (EXPR) BLOCK |
[LABEL] for (EXPR; EXPR; EXPR) BLOCK |
[LABEL] foreach VAR (ARRAY) BLOCK [LABEL] BLOCK continue BLOCK |
Attention : contrairement au C, les accolades sont obligatoires même si les blocs ne sont composés que d'une seule commande. Ceci supprime par exemple les ambiguïtés résultant de l'imbrication de plusieurs if. Il est cependant possible d'utiliser la syntaxe vue plus haut ; les exemples suivants sont équivalents :
La dernière syntaxe est la plus utilisée dans ce cas précis, elle fait
partie des idiomes de perl. N'oubliez jamais de tester la valeur de
retour d'une fonction susceptible de ne pas se terminer correctement,
et de toujours afficher un message d'erreur le plus précis
possible (ici, l'utilisation de la variable spéciale $!
permet d'afficher le message standard d'erreur UNIX indiquant la cause du
problème). Ce conseil ne s'applique évidemment pas qu'à perl.