9
votes

Utilise des étiquettes dans les sous-routines Perl considérées comme une mauvaise pratique?

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?


0 commentaires

3 Réponses :


17
votes

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.

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.


3 commentaires

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.



12
votes

Utiliser des étiquettes avec suivant , Dernier et redo 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).

Utiliser Goto Label est fortement découragé.


0 commentaires

8
votes

Il n'y a généralement aucune raison d'utiliser goto étiquette code>.

Par exemple: P>

my $i = 10;
OUTER: {
  # ...
  {
    # ...
    redo OUTER if --$i;
  }
}


0 commentaires