Domanda

Sono un po 'confuso dai consigli contrastanti tra i documenti precedenti alla 5.10.0 e la più recente versione modulo. Best Practices Pera chiarisce che le stringhe di versione ('v1.0.3') sono errate e una dovrebbe specificare una versione come segue:

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

ma il modulo versione dice che siamo tornati a usare le stringhe di versione:

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

Siamo regrediti o c'è un motivo dietro questo?

È stato utile?

Soluzione

La tua citazione da Perl Best Practices non è del tutto corretta. In particolare, nudo vstrings del modulo

our $VERSION = v1.0.3;

sono scoraggiati. Nell'ultima versione di version.pm, la raccomandazione è di usare stringhe vere:

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

Questa funzionalità è stata aggiunta per facilitare la leggibilità, evitando specificamente le trappole di stringhe nude descritte qui .

Come dice la pagina del documento a cui ti sei collegato, puoi usare le versioni senza la 'v' pre-pendente usando la logica integrata in Perl 5.10:

  

Se hai un modulo che usa una $ VERSION decimale (virgola mobile) e non intendi mai cambiarlo, questo modulo non fa per te. Non c'è nulla che version.pm ti guadagni con un semplice incarico $ VERSION.

Quindi la risposta alla tua domanda è: usa il nuovo " v1.0.3 " sintassi se si sta scrivendo un nuovo codice che utilizza version.pm. Attenersi a un numero semplice se è così che è stato scritto il vecchio codice o se non si desidera dipendere esplicitamente da module.pm.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top