Je trouve que, à l'aide d'étiquettes à l'intérieur des sous-routines Perl, à rompre à partir de plusieurs boucles, ou à redonner des pièces avec des variables mises à jour, très utile. Comment se passe ce style de codage par la communauté? Utilise des étiquettes à l'intérieur des sous-routines fronça frondes? P>
3 Réponses :
non. Ils servent exactement le but de votre décrire et je les considère comme une bonne caractéristique de la langue qui s'habitue trop peu. p>
D'autre part, chaque fois que je me trouve à la recherche de l'utilisation d'une étiquette, je me demande également de me demander si mon code a besoin d'un peu de refactoring. P>
Dans la plupart des cas, je pense que le code est plus clair avec l'utilisation d'étiquettes. Réécriture du code de manière à ce qu'il ne les utilise pas, cela conduit généralement à de nombreuses lignes de code supplémentaires.
Parfois, ça fait, parfois ce n'est pas le cas. Je vais toujours pour le code qui est plus facile à lire et à comprendre. Parfois, c'est le code qui utilise des étiquettes.
Perl Les meilleures pratiques sont en faveur des étiquettes. Je ne suis pas d'accord avec tous les PBP, mais je pense que c'est l'une de ses pièces de bons conseils. Ils servent de documentation si rien d'autre.
Utiliser des étiquettes avec Utiliser suivant code>,
Dernier code> et
redo code> est bien, mais vous devez faire une pause pour déterminer si la structure de code est la meilleure . Dans mon expérience, vous devez rarement utiliser ces opérateurs sur autre chose que la boucle d'enceinte (ce qui signifie que vous n'avez pas besoin d'utiliser une étiquette). P>
Goto Label code> est fortement découragé. p>
Il n'y a généralement aucune raison d'utiliser Par exemple: P> goto étiquette code>.
my $i = 10;
OUTER: {
# ...
{
# ...
redo OUTER if --$i;
}
}