Форум сетевых администраторов
Показаны 2 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Другие (http://netadmin.ws/forum/forumdisplay.php?forumid=19)
-- Помогите написать на Perl (http://netadmin.ws/forum/showthread.php?threadid=7211)


Помещено Mike100 05-12-2003 в 04:16:

Помогите написать на Perl

Нада показать в cgi файле содержимое другого. Для эксперимента пишу в test.cgi
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "<H1>ТЕСТ 1</H1>\n";
require '3.cgi';
print "<H1>ТЕСТ 2</H1>\n";
exit;
получается, что он первый заголовок пишет, потом вставляет 3.cgi (там код баннера) и ТЕСТ 2 не показывает вдобавок строку пишет рядом с картинкой Content-Type: text/html\n
Посоветуйте, что неправильно? Я в перле 0, но очень надо


Помещено cooper 17-12-2003 в 06:49:

"cgi файле содержимое другого" - исходный код? всмысле не выполнить скрипт, а просто показать его содержимое? Тогда так:


code:

#!/usr/bin/perl
print "Content-Type: text/html\n\n"; 
# хотя после долгих дебатов на perldev советуют использовать CGI.pm, если Вы знаете что он есть на вашем сервере, то уберите коментарий.
#use CGI qw(header);
#print header;

# выводим первый заголовок
print "<html><body><H1>TECT ONE </H1><BR>\n";

# выводим содержимое файла 3.cgi
my $File = '3.cgi'; # сюда вставить имя выводимого файла.
open(FILE, "<$File") || die "Невозможно открыть файл '$File': $! ($^E)\n";
  foreach (<FILE>)
 {
    print; 
 }
close(FILE);
# выводим второй заголовок
print "<H1>TECT TWO </H1><BR></body></html>\n";
# конец



Если надо вывести результат исполнения скрипта, то лучше всего сделать так:
(это самый просто для понимания вариант. можно конечно запустить дочерний процесс, и рабоать с ним, но так имхо проще.)

содержимое файла 3.cgi

code:
  sub banner_show
{
  # здесь код, который получает текст баннера
}
return 1; # включаемые файлы должны возвращать истину



содержимое конечного файла test.cgi

code:
  #!/usr/bin/perl
print "Content-Type: text/html\n\n"; 
# хотя после долгих дебатов на perldev советуют использовать CGI.pm, если Вы знаете что он есть на вашем сервере, то уберите коментарий.
[CODE]
#use CGI qw(header);
#print header;

# выводим первый заголовок
print "<html><body><H1>TECT ONE </H1><BR>\n";

# подключаем 3.cgi
require "3.cgi";
# выполняем процедуру banner_show (мы определили её в 3.cgi оператором sub banner_show)
&banner_show();
# выводим второй заголовок
print "<H1>TECT TWO </H1><BR></body></html>\n";
# всё!



Пояснения по отдельному запросу ;]

__________________
my $Question = 2 x $BE || !(2 x $BE);
print STDOUT $Question;


Формат времени GMT. Текущее время 19:21.
Показаны 2 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.