The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Перл модули, !*! alexeylomov, 10-Фев-05, 18:55  [смотреть все]
Есть некий модуль perlnewdb.pm который необходимо использовать в скрипте.
Но вот какая сложность: он лежит в нестандартном месте ( /usr/local/extern/lib/perl )
И он должен там остаться, но при запуске скрипта perl ругается, что модуль не найден
(так как он его ищет в стандартных директориях).
Пишет Can't locate perlnewdb.pm in @INC (@INC contains: <список_директорий>)
Так вот, никак не могу найти, где этот @INC находится. Кто-нибудь может подсказать?
  • Перл модули, !*! alexeylomov, 19:26 , 10-Фев-05 (1)
    Вопрос снят, прошу прощения за тупость :)
  • Перл модули, !*! alexeylomov, 17:12 , 11-Фев-05 (2)
    Новый вопрос: а если используемый модуль тоже включает в себя другой модуль из /usr/local/extern/lib/perl , то как его вписать в @INC?
    Когда я пишу в заголовке #!/usr/bin/perl -w -I /usr/local/extern/lib/perl, то модуль perlnewdb.pm обнаруживается, но он включает perlolddb.pm, и при попытке запуска перл пишет Can't locate loadable object for module perlolddb in @INC, хотя теперь /usr/local/extern/lib/perl в списке есть?
    • Перл модули, !*! rWizard, 17:39 , 11-Фев-05 (3)
      use lib qw(/usr/local/extern/lib/perl);
      • Перл модули, !*! alexeylomov, 19:07 , 11-Фев-05 (4)
        >use lib qw(/usr/local/extern/lib/perl);

        Ничего не изменилось :(

        • Перл модули, !*! alexeylomov, 19:18 , 11-Фев-05 (5)
          Заметьте, он пишет не Can't locate perlolddb.pm in @INC, a Can't locate loadable object for module perlolddb in @INC
          • Перл модули, !*! rWizard, 19:59 , 11-Фев-05 (6)
            >Заметьте, он пишет не Can't locate perlolddb.pm in @INC, a Can't locate
            >loadable object for module perlolddb in @INC
            use lib ... нужно писать в pakage, который будет подгружать модули из этой директории.

            • Перл модули, !*! alexeylomov, 17:46 , 15-Фев-05 (7)
              >use lib ... нужно писать в pakage, который будет подгружать модули из
              >этой директории.

              Так я там и пишу (в perlnewdb.pm) сразу после надписи use perlolddb;

              • Перл модули, !*! alexeylomov, 13:18 , 18-Фев-05 (8)
                Снова здравствуйте. Проблему я так и не решил.
                Опишу ещё раз всё подробнее:
                Есть скрипт, который использует библиотеку perlnewdb.pm
                Но она лежит в нестандартном месте (/usr/local/extern/lib/perl), поэтому use perlnewdb; не работает.
                Тогда я в первой строке пишу #!/usr/bin/perl -w -I /usr/local/extern/lib/perl и эту библиотеку скрипт находит.
                Но эта библиотека использует perlolddb.pm, которая лежит в той же папке.
                И вот тут уже начинаются проблемы, так как при запуске он пишет
                Can't locate loadable object for module perlolddb in @INC...
                Пробовал добавлять строку use lib qw(/usr/local/extern/lib/perl); - не помогает.
                Подскажите, пожалуйста, что нужно сделать?
                • Перл модули, !*! rWizard, 14:37 , 18-Фев-05 (9)
                  >Пробовал добавлять строку use lib qw(/usr/local/extern/lib/perl); - не помогает.
                  добавляли в библиотек или в основной скрипт?


                  • Перл модули, !*! alexeylomov, 14:48 , 18-Фев-05 (10)
                    >>Пробовал добавлять строку use lib qw(/usr/local/extern/lib/perl); - не помогает.
                    >добавляли в библиотек или в основной скрипт?

                    Добавлял в библиотеку perlnewdb.pm сразу после строки use perlolddb; - не помогало.
                    В основной скрипт тоже пробовал добавлять - ничего.
                    И даже в perlolddb.pm добавлял.

                    • Перл модули, !*! ACCA, 03:14 , 19-Фев-05 (11)
                      Я это так делаю:

                      1. Модуль Mymodule.pm содержит класс PROJECT::Mymodule и лежит в
                         каком-нибудь /usr/local/extern/lib/perl/PROJECT.
                      2. В стандартном месте (какой-нибудь /etc/httpd/perl) делаю symlink
                         PROJECT -> /usr/local/extern/lib/perl/PROJECT.

                    • Перл модули, !*! rWizard, 14:02 , 19-Фев-05 (12)
                      >Добавлял в библиотеку perlnewdb.pm сразу после строки use perlolddb; - не помогало.
                      нужно ДО use perlolddb;
                      тк  use lib qw(/usr/local/extern/lib/perl); - добавляет /usr/local/extern/lib/perl к путям для поиска библиотек

                      • Перл модули, !*! alexeylomov, 16:39 , 21-Фев-05 (13)
                        >нужно ДО use perlolddb;
                        >тк  use lib qw(/usr/local/extern/lib/perl); - добавляет /usr/local/extern/lib/perl к путям для поиска
                        >библиотек

                        Написал до use perlolddb; - не помогло. А путь этот там уже итак был.
                        Дело, видимо, в чём-то другом...

                • Перл модули, !*! Vladimir D Belousov, 10:48 , 25-Фев-05 (14)
                  >Снова здравствуйте. Проблему я так и не решил.
                  >Опишу ещё раз всё подробнее:
                  >Есть скрипт, который использует библиотеку perlnewdb.pm
                  >Но она лежит в нестандартном месте (/usr/local/extern/lib/perl), поэтому use perlnewdb; не работает.
                  >
                  >Тогда я в первой строке пишу #!/usr/bin/perl -w -I /usr/local/extern/lib/perl и эту
                  >библиотеку скрипт находит.
                  >Но эта библиотека использует perlolddb.pm, которая лежит в той же папке.
                  >И вот тут уже начинаются проблемы, так как при запуске он пишет
                  >
                  >Can't locate loadable object for module perlolddb in @INC...
                  >Пробовал добавлять строку use lib qw(/usr/local/extern/lib/perl); - не помогает.
                  >Подскажите, пожалуйста, что нужно сделать?


                  покажи
                  ls -l того каталога в части, касающейся обоих модулей
                  и
                  head perlnewdb.pm
                  head perlolddb.pm

                  • Перл модули, !*! alexeylomov, 13:01 , 25-Фев-05 (15)
                    >покажи
                    >ls -l того каталога в части, касающейся обоих модулей

                    >head perlnewdb.pm
                    >head perlolddb.pm

                    Пожалуйста:

                        ls -l  /usr/local/extern/lib/perl
                    -rw-r--r--    1 root     root         3868 Dec 22  2004 confperl.pm
                    -rw-r--r--    1 root     root        2979 Dec 22  2004 network.pm
                    -rw-r--r--    1 root     root          1228 Dec  28  2004 perlolddb.pm
                    -rw-r--r--    1 root     root         3829 Jan 20 13:58 perlnewdb.pm

                       head perlolddb.pm
                    # This file was automatically generated by SWIG
                    package perlolddb;
                    require Exporter;
                    require DynaLoader;
                    @ISA = qw(Exporter DynaLoader);
                    package perlolddb;
                    bootstrap perlolddb;
                    var_perldb_init();
                    package perlolddb;
                    @EXPORT = qw( );

                       head perlnewdb.pm
                    % koi8-r
                    #% project     : NEWPROJECT
                    #% module      : database/perl
                    #% description :
                    #% author      :  alexeylomov
                    #% $Id: perlnewdb.pm,v 1.20 2005/01/12 16:02:18 alexey Exp $
                    package perlnewdb;
                    use strict;




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру