Pergunta

Estou um pouco confuso com conselhos conflitantes entre pré-5.10.0 documentos e a módulo . Perl Best Practices torna bastante claro que strings de versão ( 'v1.0.3') são ruins e um é suposto para especificar uma versão da seguinte forma:

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

mas o módulo versão diz que estamos de volta ao uso de strings de versão:

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

Temos nós regredimos, ou há uma razão por trás disso?

Foi útil?

Solução

A sua citação de Perl Best Practices não é muito justo. Especificamente, nu vstrings da forma

our $VERSION = v1.0.3;

são desencorajados. Na versão mais recente do version.pm, a recomendação é usar verdadeiros strings:

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

Esta funcionalidade foi adicionada para a legibilidade da ajuda, enquanto especificamente evitar as armadilhas de cordas nuas descrito aqui .

Como a página doc é ligada ao diz, você pode usar versões sem a pré-pendente 'v' usando lógica interna em Perl 5.10:

Se você tem um módulo que usa um decimal $ VERSÃO (ponto flutuante), e você não pretende mudar isso, este módulo não é para você. Não há nada que version.pm ganhos que você mais de uma atribuição $ versão simples.

Portanto, a resposta à sua pergunta é: usar a nova sintaxe "v1.0.3" se você estiver escrevendo novo código que usos version.pm. Atenha-se um número simples, se é assim que o seu antigo código foi escrito, ou se você não quer depender explicitamente module.pm.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top