Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как узнать, установлен ли нужный модуль, программно 
V
    Опции темы
shootnix
  Дата 14.3.2006, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 3.9.2005
Где: Казахстан

Репутация: 2
Всего: 2



Ну, в общем, уже и так понятно smile

Нужно проверить с помощью скрипта, установлен ли нужный модуль.
PM WWW ICQ   Вверх
g06
Дата 14.3.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.3.2006

Репутация: нет
Всего: нет



ну так напиши use Module в eval'e и проверь код возврата...

PM MAIL   Вверх
BlackLFL
Дата 14.3.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



на примере поиска модуля File::Copy

Можно пройтись циклом по массиву путей @INC
Код

foreach ( @INC ) {
    if ( -e "$_/File/Copy.pm" ) { print "Модуль установлен"; }
}


либо через eval

PM WWW   Вверх
sharq
Дата 14.3.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



shootnix, можно из командной строки, если тебя интересует конкретный модуль:

Код

perl -MTk -e"print 1;"


smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
shootnix
Дата 14.3.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 3.9.2005
Где: Казахстан

Репутация: 2
Всего: 2



Спасибы всем эврибади!
PM WWW ICQ   Вверх
korob2001
Дата 14.3.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Вот ещё, как вариант, написал код:
Код

#!/usr/bin/perl
my @rs = ();
my @libs = grep { /^[^\.]/ } @INC;
my $file = shift || "";
while ( my $dir = shift @libs ) {
      local *LIB;
      opendir(LIB, "$dir") or die "Can't open library '$dir': $!\n";
      while (my $file = readdir LIB) {
             next if $file =~ /^\.\.?$/;
             if (-d "$dir/$file") {
                      push(@libs, "$dir/$file");
             } else {
                      push(@rs, "$dir/$file");
             }
      }
}

if ( $file ) {
      open(F, "> $file") or die "Can't open file '$file': $!\n";
      flock(F, 2);
      print F "In library at: " . localtime() . "\n";
      print F "Total " . scalar(@rs) . " files.\n";
      print F "-" x 100, "\n";
      print F join("\n", sort {$a cmp $b} @rs), "\n";
      close(F) or die "Can't close file '$file': $!\n";
} else {
      print join("\n", sort {$a cmp $b} @rs), "\n";
}

Выводит в STDOUT содержимое всех библиотек, кроме текущего каталога. Если вызвать его с параметром (имя файла), то результат будет сохранён в этот файл.

Это сообщение отредактировал(а) korob2001 - 14.3.2006, 15:06


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Phoinix
Дата 16.3.2006, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 16.11.2004
Где: Moskau

Репутация: нет
Всего: 2



shootnix,

Готовые решение никто не отменял и, кстати, этот модуль относится к предустановленным...

http://search.cpan.org/~mschwern/ExtUtils-...ls/Installed.pm
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.