Question

Les avis contradictoires entre les documents antérieurs à la version 5.10.0 et la version la plus récente m'embarrassent un peu. module. Les Meilleures pratiques pour Perl indiquent clairement que les chaînes de version ('v1.0.3') sont mauvaises et qu'un est censé spécifier une version comme suit:

use version; our $VERSION = qv('1.0.3');

mais le module de version indique que nous revenons à l'utilisation de chaînes de version:

use version 0.77; our $VERSION = qv("v1.2.3");

Avons-nous régressé ou existe-t-il une raison derrière cela?

Était-ce utile?

La solution

Votre citation de Meilleures pratiques Perl n'est pas tout à fait juste. Plus précisément, les chaînes vstrings de la forme

our $VERSION = v1.0.3;

sont découragés. Dans la dernière version de version.pm, il est recommandé d'utiliser des chaînes vraies:

use version 0.77; our $VERSION = qv("v1.2.3");               # shorthand

Cette fonctionnalité a été ajoutée pour améliorer la lisibilité, tout en évitant spécifiquement les pièges des chaînes nues décrites ici .

Comme l'indique la page de documentation à laquelle vous avez accédé, vous pouvez utiliser des versions sans le "v" en attente à l'aide de la logique intégrée dans Perl 5.10:

  

Si vous avez un module qui utilise une décimale $ VERSION (virgule flottante) et que vous n’avez pas l’intention de le changer, ce module ne vous convient pas. Il n'y a rien que version.pm vous gagne sur une simple affectation $ VERSION.

La réponse à votre question est donc la suivante: utilisez le nouveau " v1.0.3 " syntaxe si vous écrivez un nouveau code qui utilise version.pm. Si vous utilisez un ancien numéro ou si vous ne voulez pas dépendre explicitement de module.pm, tenez-vous-en à un numéro ordinaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top