Для того чтобы узнать установлен ли определенный Perl модуль, чаще всего пишут короткий однострочник, который загружает модуль и распечатывает его $VERSION. Ниже представлен усовершенстованный вариант который помимо вывода версии, проверяет является ли модуль встроеным и если да, то начиная с какой версии Perl. Для максимальной эффективности предлается установить короткий Shell alias (см. в заголовке скрипта) для вызова pm-version.pl
Примеры
V Smart::Comments
Smart::Comments v1.0.3
V File::Spec
File::Spec v3.2501 (built-in since perl v5.00405)
V Foo::Bar
Foo::Bar is not installed
Скачать
http://entropyware.info/blog/perl_tools/pm-version.tar.gz

http://blogs.perl.org/users/sawyer_x/2010/07/timtowtgtdv.html
ОтветитьУдалитьБольшое спасибо за отличную подборку! Особенно порадовал модуль с названием V - 100% совпадение с моим алиасом.
ОтветитьУдалитьОднако, насколько я понял из описаний, информацию о том встроенный модуль или нет, никто не предоставляет.
Эти сведения нужны, например, когда собираешь deb (или RPM) пакет для Perl-модуля и думаешь, а нужно ли включать, скажем, libfile-spec-perl в список зависимостей, или он и так установится вместе с Perl-ом.
Большое спасибо!
ОтветитьУдалитьBug report:
ОтветитьУдалить$ ./pm-version.pl Dancer::Plugin
Use of uninitialized value $version in concatenation (.) or string at ./pm-version.pl line 48.
Dancer::Plugin v
=)
Спасибо за баг-репорт =) Как оказалось, автор модуля Dancer::Plugin не потрудился определить $VERSION. Я поправил скрипт и обновил http://entropyware.info/blog/perl_tools/pm-version.tar.gz
ОтветитьУдалитьV Dancer::Plugin
Version of Dancer::Plugin is not defined
Обнаружил модуль (а точнее программу) на сипане, который тоже предназанчен для удобного выяснения версии модуля - http://search.cpan.org/perldoc?App::Mver Это программа не использует информацию из Module::CoreList (я уже написал тикет про это =), но но большой плюс по сравнению с pm-version.pl - это то что он находится на cpan.
ОтветитьУдалить