Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Скрипт Perl не может выполнить require файла, не понимает путь / 3 сообщений из 3, страница 1 из 1
04.01.2014, 15:41
    #38517649
Topcat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт Perl не может выполнить require файла, не понимает путь
Здравствуйте! Настраиваю с нуля VPS и после настройки Перла столкнулся с такой проблемой. Устанавливаю форум, который у меня успешно работает на другом хосте, а тут не получается, вываливается ошибка

Software error:
Can't locate ./Sources/Subs.pl in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /etc/apache2 ./Modules) at /var/www/cgi-bin/Setup.pl line 70.

когда я захожу в файл Setup.pl, нахожу

require "$sourcedir/Subs.pl"; ($sourcedir ранее определена как ./Sources)

и правлю ее на

require "/var/www/cgi-bin/Sources/Subs.pl";

то ошибка пропадает, зато появляется следующая.

Can't locate ./Sources/System.pl in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /etc/apache2 ./Modules) at /var/www/cgi-bin/Setup.pl line 71.


Т.е., скрипт не может выполнить require другого файла, путь к которому указан относительно директории самого скрипта. Как сделать, чтобы Перл понимал путь правильно?
...
Рейтинг: 0 / 0
04.01.2014, 18:08
    #38517704
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт Perl не может выполнить require файла, не понимает путь
Here are the suggested ways of modifying your include path, including environment variables, run-time switches, and in-code statements:
the PERLLIB environment variable
Код: php
1.
 $ export PERLLIB=/path/to/my/dir



the PERL5LIB environment variable
Код: php
1.
   $ export PERL5LIB=/path/to/my/dir



the perl -Idir command line flag
Код: php
1.
  $ perl -I/path/to/my/dir program.pl


the lib pragma:
Код: php
1.
  use lib "$ENV{HOME}/myown_perllib";


the local::lib module:
Код: php
1.
2.
   use local::lib;
    use local::lib "~/myown_perllib";



The last is particularly useful because it knows about machine-dependent architectures. The lib.pm pragmatic module was first included with the 5.002 release of Perl.
...
Рейтинг: 0 / 0
04.01.2014, 18:51
    #38517715
Topcat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт Perl не может выполнить require файла, не понимает путь
Первые три варианта, как я понимаю, для работы с консолью. Последние два - для непосредственного указания в скриптах. Но ведь нельзя же просто так взять и заставить человека править все скрипты мира, указывая в них что-то типа use lib "$ENV{HOME}/myown_perllib"!
Я не сильно шарю в Перле, но вот так, чтобы он "out of the box" не мог работать нормально в директориях, которые не указаны в @INC - это лажа какая-то...
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Скрипт Perl не может выполнить require файла, не понимает путь / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]