Forum Webscript.Ru
Программирование => Perl => Тема начата: RAiDER от 03 Октября 2002, 14:24:45
-
Я начинающий работу с Перлом вебмастер и вопрос мой наверняка ламерский. Но прошу не игнорировать его.
Ставлю себе Links2 и пытаюсь сделать так, чтобы он работал полноценно под Win98SE.
В качестве сервера стоит Апач 1.3.20 подключены Perl, PHP, MySQL.
Все работает нормально, кроме одной вещи: :confused:
1. При попытке создать или модифицировать ссылку через админский интерфейс (admin.cgi) Links2 не хочет работать и пишет следующее:
fatal error: Can\'t locate Time/Local.pm in @INC (@INC contains: \\HOME\\CGI-BIN\\ADMIN .) at \\HOME\\CGI-BIN\\ADMIN/links.cfg line 161.
Строка 161 файла links.cfg входит в sub date_to_unix и имеет следующий вид:
require Time::Local;
Весь sub такой:
sub date_to_unix {
#=========================================
my $date = shift; my $i;
my %months = map { $_ => $i++ } qw!Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec!;
my ($day, $mon, $year) = split(/-/, $date);
exists $months{$mon} or return undef;
$day = int($day); $year = $year - 1900;
require Time::Local;
my $time = 0;
eval {
$time = &Time::Local::timelocal(0,0,0, $day, $months{$mon}, $year);
};
if ($@) { die "invalid date format: $date - parsed as (day: $day, month: $months{$mon}, year: $year). Reason: $@"; }
return $time;
}
Сам sub я не изменял. Все прописано как были по умолчанию.
Догадываюсь, что проблема возможно в том, что работа идет под Win98, но как исправить не знаю :(
Пробовал работать в Апаче 1.3.26, такая же проблема.
Повторяю, что это не работает у меня на локальном сервере под Windows 98SE. При загрузке на сервер все работает нормально, но хочется, чтобы и на локальном компьютере все было в порядке.
Если кто сможет помочь, буду очень признателен.
Или подскажите где почитать про это. Вроде по форуму поискал и не нашел ничего об этой проблеме.
=====================
С уважением,
RAiDER.
-
Попробуй исправить:
require Time::Local;
на use Time::Local;
$time = &Time::Local::timelocal(0,0,0, $day, $months{$mon}, $year);
на $time = timelocal(0,0,0, $day, $months{$mon}, $year);
-
После такого исправления admin.cgi вообще не запускается.
Прлучается следующая ошибка:
Error including libraries: Can\'t locate Time/Local.pm in @INC (@INC contains: \\HOME\\CGI-BIN\\ADMIN .) at \\HOME\\CGI-BIN\\ADMIN/links.cfg line 161.
BEGIN failed--compilation aborted at \\HOME\\CGI-BIN\\ADMIN/links.cfg line 161.
Compilation failed in require at \\HOME\\CGI-BIN\\ADMIN\\ADMIN.CGI line 27.
Make sure they exist, permissions are set properly, and paths are set correctly.
Что можно еще попробовать?
-
Странно, твой @INC не содержит перловских библиотечных путей.
В этом случае можно найти модуль local.pm и закинуть его в дир. скрипта, но это не есть правильно.
-
Опять ничего хорошего :(
Закачал файл Local.pm и закинул его в директорию \\HOME\\CGI-BIN\\ADMIN
Все равно пишет ту же самую fatal error. Пробовал два варианта.
Хотя, ведь этот Local.pm для Пингвина, может он в Win98 не работает?
Может проблема в чем-то другом? Может в виндах? Может их переустановить? Но не хочется все снова устанавливать по-новому.
Неужели нельзя вылечить этот глюк?
-
чето ты путаешь.
как я понял скрипт у хостера работает, а на лок. компе нет.
почему то, в массиве @INC, в кот. хранятся пути доспупные скрипту, нет перловских путей. Может перл криво поставлен???
А Local.pm не надо откуда-то качать, ты просто находишь его в перловском каталоге на своей машине и копируешь в каталог скрипта, опять же на своей машине.
Причем тут пингвин????
-
Заработало! :super:
Поставил нормальный Perl и все нормально стало работать.
Дело в том, что у меня стоит так называемый "Базовый комплект Д.N.W.P.", http://www.dklab.ru/chicken/web , а тот Perl, который в него входит и выдовал вышеназванную ошибку.
Поставил Active Perl и все стало нормально работать.
Спасибо тебе, lalex, если бы не твоя светлая голова, то мои кривые ручонки...
Думаю, что тему можно считать закрытой![/I]
-
>Дело в том, что у меня стоит так называемый "Базовый комплект Д.N.W.P."
А когда документацию читать будем? Там ведь русским языком написано: "Ядро ActivePerl без стандартных библиотек.". А библиотеки лежат рядом и их нужно ставить отдельно.