Forum Webscript.Ru
Программирование => Perl => Тема начата: Yaroslav от 07 Апреля 2001, 22:26:17
-
как запустить sub (1.cgi) с дрогого скрипта (2.cgi)
-
Yaroslav (07-04-2001 22:26):
как запустить sub (1.cgi) с дрогого скрипта (2.cgi)
Ты че, извращенец? Если это специфичная для того скрипта функция, то при работе его формируются данные для работы данной функции. А если это общая функция, то почему бы не вынести ее в библиотеку?
PS Можно по извращаться с require("2.cgi"); но учитывая, что там никогда не ставят 1; ...
-
Просто в 1.cgi, находятся форма вида сайта (уж очень большая), ну вот мне ее и надо во 2 скрипте запустить.
Кроме того таких 2-х еще 3 скрипта лежит (и это еще не вечер), так что менять в ручную каждый скрипт - накладно.
-
Yaroslav (08-04-2001 20:10):
Просто в 1.cgi, находятся форма вида сайта (уж очень большая), ну вот мне ее и надо во 2 скрипте запустить.
Кроме того таких 2-х еще 3 скрипта лежит (и это еще не вечер), так что менять в ручную каждый скрипт - накладно.
Ну вынеси ты эту функцию, скажем, в отдельный .pl и наслаждайся жизнью :-)
-
cj (09-04-2001 06:48):
Ну вынеси ты эту функцию, скажем, в отдельный .pl и наслаждайся жизнью :-)
А не скажет ли многоуважемый cj, есть ли принципиальная разница между .cgi и .pl?
-
Chs (09-04-2001 07:03):
cj (09-04-2001 06:48):
Ну вынеси ты эту функцию, скажем, в отдельный .pl и наслаждайся жизнью :-)
А не скажет ли многоуважемый cj, есть ли принципиальная разница между .cgi и .pl?
Скажет :-). Принципиальной разницы нет, но:
1. если в этом самом .cgi нет этого присловутого выражения 1;, то включить его ты сможешь только через извраты типа eval, а на такие результаты полагаться нельзя.
2. При включении *.cgi будет выполнена всякая гадость, которая там прописана (например - печать хедера. Обойти можно, но это - изврат).
3. Все это неправильно с точки зрения структуры программы.
-
cj (09-04-2001 08:49):
Скажет :-). Принципиальной разницы нет,
А зачем тогда челоку мозги компостировать?
но:
1. если в этом самом .cgi нет этого присловутого выражения 1;, то включить его ты сможешь только через извраты типа eval, а на такие результаты полагаться нельзя.
Так поставить же.:)
2. При включении *.cgi будет выполнена всякая гадость, которая там прописана (например - печать хедера. Обойти можно, но это - изврат).
Не факт.
3. Все это неправильно с точки зрения структуры программы.
Тоже не факт.
Резюмирую:
В .cgi может находиться все что угодно, включая подпрограммы.:)
А все остальное - вопрос культуры программирования. И необязательно навязывать другим свои способы и методы.:))
-
Да никто и не навязывает. Просто сеть и так кишит такими "гениальными" решениями, как вызов sub из *.cgi
-
Так может кто-то все таки скажет? (доходчиво)
-
Yaroslav (09-04-2001 10:19):
Так может кто-то все таки скажет? (доходчиво)
Очень просто. Если неймспейсы одинаковые:
eval
{
require("2.cgi");
}
SubToExec($params);