Есть множесто способов выяснить какая версия Perl библиотеки установлена.
Самый стандартный способ — это вывести значение переменной $VERSION. Вот пример:
$ perl -MMojolicious -E 'say $Mojolicious::VERSION'
7.01
Тут используется однострочник Perl. С помощью ключа -M мы подключаем библиотеку Mojolicious, а потом выполняем код, который передан ключу -E. Этот код выводит на экран значение переменной $VERSION в пакете Mojolicious.
Это простое рабочее решение. Работает из коробки, ничего для этого дополнительно ставить не нужно.
Но неудобно что нужно много писать. Приходится 2 раза указывать название библиотеки.
На CPAN существует куча скриптов, которые созданы специально для решения этой задачи. Все они делают приблизительно одно и то же.
Очень удобно что нужно набрать короткую команду для того чтобы выяснить версию уставнолвенной библиотеки, но неудобно что приходится ставить что-то дополнительное с CPAN. Иногда необходимо выяснить версию библиотеки на каком-нибудь сервере и на него не хочется ставить ничего дополнительно.
И есть совершенно гениальное решение. Пишем "use НАЗВАНИЕ_БИБЛИОТЕКИ КАКОЕ-НИБУДЬ_ЧИСЛО":
$ perl -e 'use Mojolicious 123'
Mojolicious version 123 required--this is only version 7.01 at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
Тут используется фича use — можно указать какую версию библиотеки нужно подключить. Мы указываем како-то большое число и Perl ругеается что библиотеки такой версии нет, но при этом говорит ровно то что нам нужно — какая версия библиотеки установлена.
Это не такое удобное решение как со специальным скриптом, но зато это работает из коробки — ничего ставить не нужно, а набирать тут нужно меньше чем в cлучае с $VERSION.
8 июля 2018
Этот текст есть и на английском языке |