Для чего нужна настройка $ VERSION? - PullRequest
4 голосов
/ 03 сентября 2010

Множество способов установить ваши модули $VERSION в perl, некоторые даже имеют свои преимущества. Чего я не знаю, так это почему мы это делаем? Я имею в виду, что у META.yml есть версия ... которая используется cpan? так почему мы устанавливаем это в модуле? какой смысл?

Ответы [ 5 ]

10 голосов
/ 03 сентября 2010

Таким образом, вы можете сказать

use Module::Name 4.5.6;

И код потерпит неудачу, если у вас не установлена ​​хотя бы версия 4.5.6 Module :: Name.

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

perl -MScalar::Util=99999999999999

Это примерно эквивалентно

#!/usr/bin/perl

use Scalar::Util 99999999999999;

Это не удастся (потому что Scalar::Util близко к версии99999999999999) и сообщит вам номер версии.В моем случае это говорит:

Scalar::Util version v.Inf required--this is only version 1.22 at
/Users/cowens/apps/perlbrew/perls/perl-5.12.1/lib/5.12.1/Exporter/Heavy.pm
line 120.
BEGIN failed--compilation aborted.
5 голосов
/ 03 сентября 2010

От perlmodlib: Руководство по созданию модуля :

Для полной совместимости с модулями Exporter и MakeMaker вы должны сохранить номер версии вашего модуля в переменной пакета не-myназывается $ VERSION.

Чтобы дополнить ответы других, вот ссылка на , используйте MODULE VERSION

3 голосов
/ 03 сентября 2010

Это может быть немного не по теме, но начиная с perl 5.12 вы можете установить свои модули VERSION, просто выполнив

package Foo::Bar 1.23;

См. perl 5.12 изменения .

Хотя номер версии должен соответствовать «строгому» формату, см. $ version :: STRICT в версии :: Internals.

3 голосов
/ 03 сентября 2010

$VERSION доступно в коде. Например, пользователь вашего модуля может написать

use YourModule 2.3;

для обеспечения доступности минимальной версии YourModule. Это важно для изменений API, исправления ошибок и т. Д.

3 голосов
/ 03 сентября 2010

Поэтому, если ваш модуль широко используется и активно поддерживается, люди могут легко ссылаться на версию в своем коде, чтобы активировать / деактивировать свой код в зависимости от того, какую версию они используют.Просто предположение.

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