Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Perl / Полезная информация /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Немножко о модуле CGI.pm в Perl. - Программирование от RIN.RU
Немножко о модуле CGI.pm в Perl.

Модуль CGI предназначен для упрощения создания HTML документов скриптом написанным на Perl"е. Модуль CGI подключается к вашему скрипту на perl, так же, как и другие модули:


use CGI;


Есть два способа использования модуля CGI: это объектно-ориентированный стиль и как набор функций. при использовании объектно-ориентированного стиля, вы создаете один или несколько объектов, а потом используете их методы для формирования HTML-страницы. Вот пример использования объектно-ориентированного стиля:


#!/usr/bin/perl
use CGI; # Подключить модуль CGI
$q = new CGI; # Создать новый объект CGI


print $q->header


# Вызов метода header, который печатает HTTP заголовок
# это вместо print "Content-Type: text/html\n\n"


$q->start_html("Hello World")


# Печатаем начало документа (тэги <HEAD> и <BODY>),
# при этом вставляем строчку <TITLE>Hello World</TITLE>


$q->h1("Hello World")


# Печатаем заголовок первого уровня


$q->end_html;


# Печатаем конец документа (</BODY> </HTML>)


Использовать CGI как набор функций, еще проще, в этом случае, вам не нужно создавать новый объект, вы просто используете функции CGI. Следующий пример демонстрирует использование CGI как набор функций, в результате его выполнения будет выдана страница аналогичная странице выдаваемой в предыдущем примере.


#!/usr/bin/perl
use CGI qw/:standard/; # Загружаем стандартные процедуры CGI
print header


# Печатаем HTTP заголовок
# это вместо print "Content-Type: text/html\n\n"


start_html("Hello World")


# Печатаем начало документа (тэги <HEAD> и <BODY>),
# при этом вставляем строчку <TITLE>Hello World</TITLE>


h1("Hello World")


# Печатаем заголовок первого уровня


end_html;


# Печатаем конец документа (</BODY> </HTML>)


Синтаксис функций в CGI таков:


name({-atr=>value, -atr2=>value2}, "text")


name - это имя функции, которое как правило совпадает с именем интересующего тэга. О тэгах, имена которых не совпадают с именами соответствующих функций, речь пойдет дальше.
atr и atr2 - это имена атрибутов данного тэга.
value и value2 - это значения тэгов.
text - это текст находящийся между открывающим и закрывающим тэгами.
Любой из указанных параметров может опускаться. Рассмотрим все изложенное на примерах.


print h1() # Печатает <H1>
print h1("Hello","world"); # Печатает <H1>Hello world</H1>
print h1({-align=>left}); # Печатает <H1 ALIGN="LEFT">
print h1({-align=>left},"Hello"); # Печатает <H1 ALIGN="LEFT">Hello</H1>


Некоторые функции в CGI используются парами, подобно закрывающим и открывающим тэгам в HTML, например:


start_html и end_html (<HTML><HTML/>)


start_table и end_table (<TABLE></TABLE>)


start_ul и end_ul (<UL></UL>)


start_form и end_form (<FORM></FORM>)


Вы наверное уже успели заметить, что названия функций аналогичны названиям тэгов HTML. В этом и заключается простота в освоении CGI, достаточно знать HTML, чтобы через 30 мин. свободно использовать CGI. Вот список функций, имена которых не совпадают с именами тэгов:


print redirect("http://www.perl.ru/"); # Переадресовать браузер к другой странице.


# Пример известной нам функции выполняющей функции сразу нескольких тэгов


print start_html(-title=>"Hello World", # Заголовок документа
-author=>"flp@mail.ru", # Автор
-meta=>{"keywords"=>"world hello flp", # Ключевые слова
"copyright"=>"copyright 2003 RIN.RU"}, # Авторские права
-style=>{"src"=>"/styles/style1.css"}, # Стиль для документа
-BGCOLOR=>"blue"); # BGCOLOR для документа


print header(-Refresh=>"10; URL=http://www.perl.ru", # Обновление документа
-cookie=>$cookie, # Устанавливаем Cookie
-type=>"image/gif", # Тип документа
-expires=>"+3d"); # Срок годности
# Следующий тэг создает список радио-кнопок (аналог <INPUT TYPE=RADIO>):


print radio_group("name"=>"OS",
"values"=>["Unix","Windows","Macintosh"],
"default"=>"Unix");
# Следующий тэг создает поле ввода пароля (аналог <INPUT TYPE=PASSWORD>):


password_field(-name=>"secret",
-value=>"starting value",
-size=>50,
-maxlength=>80);
# Аналогично данной функции используются функция file_field


Сильной стороной CGI является использование параметров, передаваемых скрипту. Функция param() взращает значение любого из параметров.


Вызовем скрипт script.cgi?name=bob&lang=en&opt=1&opt=4&opt=8


$a = param("name") # Переменной $a присваиваем значение параметра name ($a=bob)
$a = param("lang") # Переменной $a присваиваем значение параметра lang ($a=en)
@a = param("opt") # Массиву @a присваиваем значения параметра opt (@a[0]=1; @a[1]=4; @a[2]=8;)



 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

HTML

Руководство Маслов

Для начинающих

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь