пятница, 6 августа 2010 г.

pm-version.pl --- самый быстрый способ узнать установлен ли Perl модуль и если да, то какой версии

Введение

Для того чтобы узнать установлен ли определенный 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

6 комментариев:

  1. http://blogs.perl.org/users/sawyer_x/2010/07/timtowtgtdv.html

    ОтветитьУдалить
  2. Большое спасибо за отличную подборку! Особенно порадовал модуль с названием V - 100% совпадение с моим алиасом.

    Однако, насколько я понял из описаний, информацию о том встроенный модуль или нет, никто не предоставляет.

    Эти сведения нужны, например, когда собираешь deb (или RPM) пакет для Perl-модуля и думаешь, а нужно ли включать, скажем, libfile-spec-perl в список зависимостей, или он и так установится вместе с Perl-ом.

    ОтветитьУдалить
  3. 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

    =)

    ОтветитьУдалить
  4. Спасибо за баг-репорт =) Как оказалось, автор модуля Dancer::Plugin не потрудился определить $VERSION. Я поправил скрипт и обновил http://entropyware.info/blog/perl_tools/pm-version.tar.gz

    V Dancer::Plugin
    Version of Dancer::Plugin is not defined

    ОтветитьУдалить
  5. Обнаружил модуль (а точнее программу) на сипане, который тоже предназанчен для удобного выяснения версии модуля - http://search.cpan.org/perldoc?App::Mver Это программа не использует информацию из Module::CoreList (я уже написал тикет про это =), но но большой плюс по сравнению с pm-version.pl - это то что он находится на cpan.

    ОтветитьУдалить