Как указать версию пакета в Perl? - PullRequest
5 голосов
/ 01 августа 2009

Меня немного смущает противоречивый совет между документами до 5.10.0 и более новым модулем версия . Perl Best Practices ясно показывает, что строки версий ('v1.0.3') плохие, и предполагается, что версия указана следующим образом:

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

но модуль версии говорит, что мы вернулись к использованию строк версии:

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

Мы регрессировали или есть причина этого?

1 Ответ

8 голосов
/ 01 августа 2009

Ваша цитата из Perl Best Practices не совсем верна. В частности, голые нити в форме

our $VERSION = v1.0.3;

не приветствуются. В последней версии version.pm рекомендуется использовать истинные строки:

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

Эта функциональность была добавлена ​​для улучшения читабельности, в то же время специально избегая ловушек описанных оголенных строк здесь .

Как говорит ссылка на страницу документа, на которую вы ссылаетесь, вы можете использовать версии без предварительно ожидаемого 'v', используя встроенную логику в Perl 5.10:

Если у вас есть модуль, который использует десятичную $ VERSION (с плавающей запятой), и вы не собираетесь когда-либо изменять это, этот модуль не для вас. Version.pm не даст вам ничего, кроме простого назначения $ VERSION.

Итак, ответ на ваш вопрос: используйте новый синтаксис "v1.0.3", если вы пишете новый код, который использует version.pm. Придерживайтесь простого числа, если именно так был написан ваш старый код, или если вы не хотите явно зависеть от module.pm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...