Forum Webscript.Ru

Программирование => Perl => Тема начата: Yaroslav от 07 Апреля 2001, 22:26:17

Название: как запустить sub с дрогого скрипта
Отправлено: Yaroslav от 07 Апреля 2001, 22:26:17
как запустить sub (1.cgi) с дрогого скрипта (2.cgi)
Название: как запустить sub с дрогого скрипта
Отправлено: cj от 08 Апреля 2001, 15:24:16
Цитировать
Yaroslav (07-04-2001 22:26):
как запустить sub (1.cgi) с дрогого скрипта (2.cgi)


Ты че, извращенец? Если это специфичная для того скрипта функция, то при работе его формируются данные для работы данной функции. А если это общая функция, то почему бы не вынести ее в библиотеку?

PS Можно по извращаться с require("2.cgi"); но учитывая, что там никогда не ставят 1; ...
Название: как запустить sub с дрогого скрипта
Отправлено: Yaroslav от 08 Апреля 2001, 20:10:30
Просто в 1.cgi, находятся форма вида сайта (уж очень большая), ну вот мне ее и надо во 2 скрипте запустить.
Кроме того таких 2-х еще 3 скрипта лежит (и это еще не вечер), так что менять в ручную каждый скрипт - накладно.
Название: как запустить sub с дрогого скрипта
Отправлено: cj от 09 Апреля 2001, 06:48:52
Цитировать
Yaroslav (08-04-2001 20:10):
Просто в 1.cgi, находятся форма вида сайта (уж очень большая), ну вот мне ее и надо во 2 скрипте запустить.
Кроме того таких 2-х еще 3 скрипта лежит (и это еще не вечер), так что менять в ручную каждый скрипт - накладно.

Ну вынеси ты эту функцию, скажем, в отдельный .pl и наслаждайся жизнью :-)
Название: как запустить sub с дрогого скрипта
Отправлено: Chs от 09 Апреля 2001, 07:03:32
Цитировать
cj (09-04-2001 06:48):
Ну вынеси ты эту функцию, скажем, в отдельный .pl и наслаждайся жизнью :-)
А не скажет ли многоуважемый cj, есть ли принципиальная разница между .cgi и .pl?
Название: как запустить sub с дрогого скрипта
Отправлено: cj от 09 Апреля 2001, 08:49:34
Цитировать
Chs (09-04-2001 07:03):
Цитировать
cj (09-04-2001 06:48):
Ну вынеси ты эту функцию, скажем, в отдельный .pl и наслаждайся жизнью :-)
А не скажет ли многоуважемый cj, есть ли принципиальная разница между .cgi и .pl?

Скажет :-). Принципиальной разницы нет, но:
1. если в этом самом .cgi нет этого присловутого выражения 1;, то включить его ты сможешь только через извраты типа eval, а на такие результаты полагаться нельзя.
2. При включении *.cgi будет выполнена всякая гадость, которая там прописана (например - печать хедера. Обойти можно, но это - изврат).
3. Все это неправильно с точки зрения структуры программы.
Название: как запустить sub с дрогого скрипта
Отправлено: Chs от 09 Апреля 2001, 10:10:43
Цитировать
cj (09-04-2001 08:49):
Скажет :-). Принципиальной разницы нет,
А зачем тогда челоку мозги компостировать?
Цитировать
но:
1. если в этом самом .cgi нет этого присловутого выражения 1;, то включить его ты сможешь только через извраты типа eval, а на такие результаты полагаться нельзя.
Так поставить же.:)
Цитировать
2. При включении *.cgi будет выполнена всякая гадость, которая там прописана (например - печать хедера. Обойти можно, но это - изврат).
Не факт.
Цитировать
3. Все это неправильно с точки зрения структуры программы.
Тоже не факт.
Резюмирую:
В .cgi может находиться все что угодно, включая подпрограммы.:)
А все остальное - вопрос культуры программирования. И необязательно навязывать другим свои способы и методы.:))
Название: как запустить sub с дрогого скрипта
Отправлено: cj от 09 Апреля 2001, 10:14:23
Да никто и не навязывает. Просто сеть и так кишит такими "гениальными" решениями, как вызов sub из *.cgi
Название: как запустить sub с дрогого скрипта
Отправлено: Yaroslav от 09 Апреля 2001, 10:19:35
Так может кто-то все таки скажет? (доходчиво)
Название: как запустить sub с дрогого скрипта
Отправлено: cj от 09 Апреля 2001, 10:28:20
Цитировать
Yaroslav (09-04-2001 10:19):
Так может кто-то все таки скажет? (доходчиво)

Очень просто. Если неймспейсы одинаковые:

eval
{
    require("2.cgi");
}

SubToExec($params);