Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию    
    главная     хостинг     создание сайтов    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Системное программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

Немножко о модуле CGI.pm в Perl

Автор: Philip A. Koryaka

Модуль 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 2000 Philip Koryaka'}, # Авторские права 
                 -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;)










helloworld.ru © 2001-2016
Все права защищены
Rambler's Top100 TopList Rambler's Top100