Какая версия Perl требуется для модуля CPAN?

Как я могу узнать, рекомендуется ли тот или иной модуль для использования с моей старой версией Perl? Есть ли у CPANM или CPAN аргумент для проверки того, что все, что будет внесено, действительно для используемой версии Perl? У меня старая версия Perl, и я не решаюсь добавлять дополнительные библиотеки.


person paulj    schedule 23.08.2017    source источник
comment
Попытка установить модуль не повредит вашему Perl. Если у модуля есть тесты, и они не пройдут, он просто не будет установлен. Если его тестов недостаточно для обнаружения несовместимости со старой версией Perl, худшее, что может случиться, - это то, что он установлен, и если вы его используете, ваша конкретная программа выйдет из строя, не будет работать или работать ненадежным образом. Но на самом деле это не касается вашего Perl и всех других ваших программ.   -  person simbabque    schedule 23.08.2017


Ответы (2)


Найдите в матрице тестеров CPAN интересующие вас дистрибутивы. Если модуль будет собирать и проходить тесты на определенной версии perl и конкретной ОС, эта страница сообщит вам об этом.

person mob    schedule 23.08.2017

Если в дистрибутиве указана минимально необходимая версия Perl, она будет найдена в ->{prereqs}{runtime}{requires}{perl} в META.json или META.yml файле, найденном в дистрибутиве. Например, GFUJI/Mouse-v2.4.10 указывает зависимость от Perl 5.8. .5.

Кроме того, вы можете просмотреть результаты добровольцев, которые жертвуют оборудование и время для тестирования каждой версии каждого модуля на CPAN. Они находятся в матрице тестеров CPAN. И search.cpan.org, и metacpan.org ссылаются на матрицу результатов тестирования каждого распределения.

cpan и cpanm будут учитывать минимальную версию, указанную в META.json или META.yml; они даже не будут пытаться установить модуль, для которого требуется более новая perl. cpan и cpanm также будут запускать набор тестов, предоставляемый дистрибутивом. Только если набор тестов пройдет без ошибок, они установят дистрибутив.

person ikegami    schedule 23.08.2017