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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl: правильные пути в командах, push, if, open, unlink 
:(
    Опции темы
bnmuser
Дата 16.3.2004, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пожалуйста, помогите!

Perl не знаю.
Скрипт гостевой книги находится на сервере провайдера под UNIX.
В домашнем каталоге четыре папки - bin, docs, logs.
В папке docs находится весь сайт вместе папкой cgi
В папке cgi находятся скрипты и гостевая книга.

В скрипте есть команда:
Код
push(@INC,"/usr/local/apache/cgi-bin/");
require("cgi-lib.pl");


Как правильно указать путь в этой команде , если для IIS 5.0 WINDOWS 2000 я указываю путь
Код
push(@INC,"Location:http://www.firma.com/cgi/");
require("cgi-lib.pl");

и все работает нормально.
Наверное , для UNIX путь указывается как-то по другому.

Этот же вопрос для команд
Код
#  if (-e "quest/.questlock") {
   # The file existed, time to take a nap
#    sleep(1);
#    }

В Windows я ставлю
Код
#  if (-e "Location:http://www.firma.com/cgi/.questlock") {
   # The file existed, time to take a nap
#    sleep(1);
#    }
#  else {


и
Код
# Create the lock file, thereby locking the guestbook
   open(LOCK,">quest/.questlock");
   close LOCK;

в W2000 :
Код
# Create the lock file, thereby locking the guestbook
   open(LOCK,">Location:http://www.firma.com/cgi/.questlock");
   close LOCK;



и, последняя

Код
# unlock the file
   unlink("quest/.questlock");

в W2000 :
Код
# unlock the file
   unlink("Location:http://www.firma.com/cgi/.questlock");


Спасибо.



PM MAIL   Вверх
korob2001
Дата 16.3.2004, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

В домашнем каталоге четыре папки - bin, docs, logs.
В папке docs находится весь сайт вместе папкой cgi
В папке cgi находятся скрипты и гостевая книга.

Попробуй так:
/cgi/ или /cgi-bin/
т.е. первый слеш указывает, что путь начинается с корневого каталога. Затем указывает на папку cgi или cgi-bin, это зависит от того какая директория предназначена для CGI скриптов, обычно это cgi-bin, но может быть и cgi.

Этот путь был для этого:
push(@INC,"/usr/local/apache/cgi-bin/");
require("cgi-lib.pl");

Для всех остальных случаях, путь должен быть таким:
/cgi/guest/.guestlock или /cgi-bin/guest/.guestlock

Удачи.

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


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


Новичок



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

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



Korob2001, спасибо.
Все сделал.
Не пошло.
Провайдер долго молчал, но потом все-таки что-то сделал (наверное, дал разрешения на исполнение скриптов и , еще, раскидал по разным папкам скрипт и guest_book.htm) и скрипт начал вроде бы выполняться, выходит на завершение без ругани, но текст сообщения в гостевую книгу не записывается.

Теперь вопросы по командам.
Подскажите пожалйста, что означают команды


Код
#  if (-e "quest/.questlock") {
  # The file existed, time to take a nap
#    sleep(1);
#    }


Код
# Create the lock file, thereby locking the guestbook
  open(LOCK,">quest/.questlock");
  close LOCK;


Код
# open and read in the old guestbook
   # Note: Creating a backup copy of the file might not be a bad idea ...
  open(GB,"<quest/quest.htm";

@lines = <GB>;
close GB;[/code]
Код
# unlock the file
  unlink("quest/.questlock");


Файлов и папок quest у меня вообще нет.
Если можно, поподробнее, пожалуйста.

Спасибо.

PM MAIL   Вверх
korob2001
Дата 6.4.2004, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

#  if (-e "quest/.questlock") {
# The file existed, time to take a nap
#    sleep(1);
#    }

В первую очередь:
# - означает комментарии, то есть всё, что находится за этим символом, будет пропущено интерпритатором.

if ( -e "guest/.guestlock") {
sleep(1);
}

Проверяем существует ли файл .guestlock в каталоге guest, если да, то выполняется блок, в данном случае у нас в блоке 1 оператор sleep(1).

sleep(1) - означает заснуть на 1 секунду, другими словами ,программа приостанавливается на 1 секунду в том случае, если в каталоге guest/ есть файл или вложенный каталог с именем.guestlock.

Код

# Create the lock file, thereby locking the guestbook
 open(LOCK,">quest/.questlock");
 close LOCK;


open(LOCK, ">guest/.guestlock");
- открывает файл .guestlock из каталога guest/ для записи и присваивает ему дескриптор LOCK.

close( LOCK ) - закрывает файл связанный с дескриптором LOCK


open(GB,"<quest/quest.htm")
- открывает файл guest.htm из каталога guest для чтения и связывает с ним дескриптор GB.

@lines = <GB>; - записываем содержимое всего файла ,связанного с дескриптором GB, в массив @lines. В данном случае, название массива говорит само за себя, так как каждый элемент массива будет содержать каждую отдельную строку файла, такое поведение можно изменить при помощи переменной $/. Кстати этот способ чтения файла не самый лучший, так как содержимое всего файла помещается в оперативную память, а она, как известно, ограничена, как и всё в этом мире. Если файл не слишком большой, то можно и удобнее воспользоваться этим способом, но если размер файла может перевалить, ну скажем, за 100 mb и более ,то лучше воспользоваться таким способом чтения файла:
Код

while ( <GB> ) {
   # Делаем что-то с каждой сторокой файла
}

При таком подходе нет необходимости писать весь файл в оперативную память, мы обрабатываем файл любого размера построчно. По возможности советую преобрести привычку пользоваться только таким способом чтения файлов. Это будет хорошая привычка. ;)

close GB - закрываем файл, связанный с дескриптором GB

unlink("quest/.questlock") - удаляет файл .guestlock из каталога guest

Удачи ;)

Это сообщение отредактировал(а) korob2001 - 6.4.2004, 20:47


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


Unregistered











withstupid.gif Я установил программу phpdev 4.5 поскольку мне препод требовал. Рhpdev 4.5 - это сервер, туда входят все пакеты программ(mysql, apache, perl, php). Выходит так, что программа на Perl-лe не вызывает БД (mysql). А php вызывает нормально! Что делать, помогите!
  Вверх
Guest
Дата 18.5.2004, 10:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











korob2001 withstupid.gif Может ты поможешь! Я установил программу phpdev 4.5 поскольку мне препод требовал. Рhpdev 4.5 - это сервер, туда входят все пакеты программ(mysql, apache, perl, php). Выходит так, что программа на Perl-лe не вызывает БД (mysql). А php вызывает нормально! Что делать, помогите! mad.gif

  Вверх
korob2001
Дата 18.5.2004, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Каким образом ты пытаешься подключиться к БД ( часть кода )?


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


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

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


 




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


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

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