Forum Webscript.Ru
Программирование => Perl => Тема начата: DJ Fat от 12 Июля 2002, 21:51:23
-
Привет всем!
Помогите мне, я новичок. Скажите, как в файлах *.cgi (или *.pl) выполнить include()? Пробовал и он не работает.
Поясняю: у меня перл-скрипт на основе шаблона и в footer\'e я писал , но безуспешно.
-
Никак. Такого желания и не должно возникать. Средств Perl-a что недостаточно?
-
Жаль. Но, если бы я знал все эти средства...
А как это сделать средствами перла, если не секрет?
-
DJ Fat, а ты случайно не мой скрипт мучаешь?:-))))),
Ну да не важно.
Пиши мне на мыло, что надо сделать, если скрипт не мой, то и скрипт приаттачить не забудь.
А как это сделать средствами перла, если не секрет?
Не секрет. Но объяснять долго и сложно. Надо код посмотреть. Вообще в течении пяти минут делается. Только нужно соответствующий кусочек кода найти. А в этом то вся и проблема:-). Для этого или мне надо на код взглянуть, или тебе перл выучить.
ЗЫ. Мыло моё не забыл?%-) stalnoy_gleb@mail.ru
-
Тут надо Perl -ом открыть файл и распечатать
open C,"$patch_to_file/$file";print ;close C;
А можно и так:
В файле footer, туда где нужно вставить другой файл
пишем
а в перл делаем функцию например footer
sub footer{
open F,"footer.htm";@footer=;close F;
foreach $footer(@footer){
if ($footer=~s///){open C,"$patch_to_file/$file";print ;close C}
print $footer}}
#$patch_to_file - путь к файлу из дирректории с скриптом
#$file - ну тот самый файл :)
-
ESE, немного не то что надо. Дело в том, что человек привык делать весь сайт на инклудах на основе шаблонов, и ему лень каждый раз лезть в код Перла, чтобы поменять путь. Как оказалось при вскрытии это мой скрипт:-)), так что я вроде научил его (скрипт) распознавать директиву инклуд и действовать соответственно, хотя это ещё не факт, DJ Fat до сих пор не проверил работоспособность, а мои регулярные выражения всегда оставляли желать лучшего:-)))), вот что я сочинил:
=~m/^.*.*$/is
ИМХО: вроде правильно, хотя... Что скажешь, Ese?
-
А, ну ты сразу указываешь какой файл надо забрать? Это еще лучше!
-
Обрати внимание на модуль CGI::SSI
( Use SSI from CGI scripts )
-
Нужно как-то сервер настроить, чтобы он cgi-output парсил, только это не нужно. Ведь ты всё это сам выполнить можешь, файл например открыть, считать его и в STDOUT запустить.
Так твоё работает.
-
Нужно как-то сервер настроить, чтобы он cgi-output парсил,
Ага. welcome hacker, что называется.
-
welcome hacker, что называется
Очень интересно. Например?
-
Пример могу привести на PHP
-
Обрати внимание на модуль CGI::SSI
Гм... это стандартный модуль? На халявных хостингах имеется?
-
Гм... это стандартный модуль? На халявных хостингах имеется?
Гм...А поставить слабо? :)
-
Гм...А поставить слабо?
В смысле? Просить админов?
Или вместе со скриптом поставлять и модуль? Лучше уж тогда я функцию сам напишу, чем кучу файлов к скрипту навешивать. Как этот модуль работает, в перлдоке что надо набрать, чтобы почитать?
-
ThE0ReTiC
Пример могу привести на PHP
Всё равно не пойму. Это можно сделать лишь при совместной работе cgi и ssi? А просто скриптом?
Я имею в виду, если уж человек(плохой) и имеет возможность заставить скрипт выводить (при том, что такой скрипт есть), то наверное он также может просто unlink написать.
-
В смысле? Просить админов?
Или вместе со скриптом поставлять и модуль?
А в чем проблема? У тебя же и так есть, наверняка, свои модули частоупотребляемых функций? Посмотри как реализован этот модуль и добавь к себе (сразу скажу, что там он прост как угол дома :) ).
-
require("sub_script.pl");
-
Croaker это ты к чему???
-
Вопрос изначально был:
Скажите, как в файлах *.cgi (или *.pl) выполнить include()? Пробовал и он не работает.
на перле это recuire() - подключает куски cgi скриптов (на перле).
а если просто html`ники подключать... я пользуюсь FastTemplate.
[OFF]я конечно понимаю, что трейд старый, но может кому-нидь пригодится... :-)[/OFF]