Реферат по предмету "Программирование"


Практический Перл для начинающего

Практический
Перл для начинающего

Данная работа
написана для людей, которым в силу непреодолимых обстоятельств приспичило
срочно изучить Перл. Для меня таким обстоятельством стало то, что мой компьютер
стал WEB-сервером, а я, соответственно, WEB-мастером. Учиться принято на чужих
ошибках и опыте, поэтому предлагаю Вашему вниманию свой опыт изучения Перла.

Сразу нужно
пояснить, для кого это все написано. Если Ваш сервер работает на платформе
UNIX, то это я должен читать Вашу статью. У меня же установлен Windows NT
workstation 4.0 (RUS) плюс
Service Pack 3. Когда пришло
время сделать из компьютера WEB-сервер, я было кинулся ко встроенным Службам
узла WEB, но быстро понял, что это мне не нравится (почему ?). И тут один
добрый человек посоветовал поставить Xitami WEB Server от iMatix Corporation
(http://www.imatix.com/), который и стоит по сей день.

Что касается
самого Перла, то здесь несколько сложнее. Покопавшись по различным Перловым серверам
(www.perl.org , www.perl.com ) я узнал, что версий Перла настолько много, что
выбрать что-нибудь конкретное довольно сложно. При этом каких-нибудь
вразумительных рекомендаций по поводу выбора той или иной версии нигде нет.
Перепробовав почти все версии для Windows, я остановил свой выбор на Active
Perl (http://www.activestate.com/).

Человеку,
избалованному всякими Виндовозами и Дельфями, писать программы на Перл довольно
непривычно, поэтому настоятельно рекомендую сразу установить Perl Builder.
Взять его можно на www.solutionsoft.com. Там лежала тридцатидневная Демо
версия.

Ну, думаю, пора
переходить непосредственно к делу. В общем случае, скрипт на Перл, как и любая
другая программа, работает так:

получает данные


обрабатывает
данные

выдает
результаты

Передать данные
скрипту можно двумя методами - GET и POST. Разница между ними в том, что при
использовании GET данные постоянно болтаются в строке адреса браузера, напимер:


httр://treagraf.tasur.edu.ru/cgi-bin/price.pl?Category=POWER&Description=varta

В этом случае
скрипт B_price.pl
берет данные в переменной окружения QUERY-STRING.

$data=$ENV{'QUERY_STRING'};

При
использовании метода POST данные передаются на стандартный вход скрипта. Длинна
блока данных берется в переменной CONTENT_LENGTH:

read(STDIN,$data,$ENV{'CONTENT_LENGTH'});

Теперь эти
данные нужно перевести в удобоваримый вид, поскольку они закодированы.

Стандартным
соглашением служит замена пробелов знаками плюс и затем кодировка оставшихся
недопустимых символов с помощью ASCII-кодов в шестнадцатиричной форме, перед
которыми ставится знак (%). Пример:

http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl?Category=%C2%E8%E4%E5%EE&Description=%E0%E1%E2%E3

Это значит:

http://treagraf.tasur.edu.ru/cgi-bin/B_price.pl?Category=Видео&Description=абвг

Декодировать
строку запросов в первый раз лучше самому. На вопрос "а как?" есть
множество ответов, переписывать которые нет смысла. Приведу лишь короткий
пример:

Заменяем знаки
(+) на пробелы

$query = ~ s/+/ /g;

Потом заменяем
все сочетания знака (%), после которого следуют шестнадцатиричные цифры, на
соответствующий символ ASCII

$query =~ s/%([0-9A-H]{2})/pack('C', hex($1))/eg;

Я пользуюсь
тем, что предлагает Perl Builder:

#! E:perl5binperl

&GetFormInput; # вызов подпрограммы получения данных

$Category = $field{'Category'}; # получаем данные из поля Category

$Description = $field{'Description'}; # получаем данные из поля Description

$Page = $field{'Page'}; # получаем данные из поля Page

В конце скрипта
помещаем подпрограмму "прозрачного" чтения данных.

sub GetFormInput {

(*fval) = @_ if @_ ;

local ($buf);

if ($ENV{'REQUEST_METHOD'} eq 'POST') {

read(STDIN,$buf,$ENV{'CONTENT_LENGTH'});

}

else {

$buf=$ENV{'QUERY_STRING'};

}

if ($buf eq "") {

return 0 ;

}

else {

@fval=split(/&/,$buf);

foreach $i (0 .. $#fval){

($name,$val)=split (/=/,$fval[$i],2);

$val=~tr/+/ /;

$val=~ s/%(..)/pack("c",hex($1))/ge;

$name=~tr/+/ /;

$name=~ s/%(..)/pack("c",hex($1))/ge;

if (!defined($field{$name})) {

$field{$name}=$val;

}

else {

$field{$name} .= ",$val";

#if you want multi-selects to goto into an array
change to:

#$field{$name} .= "


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Учет уставного капитала
Реферат Проектирование интернет-магазина для предприятия розничной торговли
Реферат « Анализ педагогических взглядов Жан-Жака Руссо в произведении «Эмиль или о Воспитании»
Реферат Профилактика простудных заболеваний средствами физической культуры
Реферат Автомобильный двигатель змз-5143
Реферат Разработка PR мероприятий для Туристского агенства ООО Вояж-плюс .
Реферат Патриарший собор Светицховели
Реферат Курсовая работа по экономике предприятия
Реферат Актуальные проблемы участия защитника на стадии возобновления уголовных дел по вновь открывшимся
Реферат Брак умер... Да здравствует семья, Некрасов Анатолий
Реферат Организация учета основных средств в ООО Удмуртмельпром
Реферат Защита права собственности 2 Право собственности
Реферат Правовая экспертиза документов
Реферат Классификация педагогических наук. Классификация психологиче
Реферат Цивільна оборона в сучасних умовах