Разделы

  Java, JavaScript
  Документация Perl
  Новости
  Документация ASP
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C

введение в perl

Документация Perl
4.1 / 5 (96 оценок)


Альтернативы Perl



Существует несколько альтернатив использованию Perl:
С, Visual Basic - более традиционные компьютерные языки для обработки вводимых данных. Должны компилироваться под определенную платформу.
ActiveX - включение программных компонент, выполняющихся в браузере.
JavaScript, VBScript - обеспечивают некоторую интерактивность HTML страниц, которую HTML обеспечить не может.
Cold Fusion - сторонняя программа для связи форм с базами данных.
PHP/FI - еще одна сторонняя программа для связи форм с базами данных.


Несмотря на это Perl на сегодняшний день является наиболее простым и быстрым и в тоже время очень мощным средством придания интерактивности вашему узлу.
Что вам требуется, чтобы запустить Perl

Для запуска Perl вашей системе понадобится несколько компонент:
Скрипт, написанный вами или предложенный вам другим, сохраненный в текстовом файле.
Perl интерпретатор. Любой Perl скрипт в первой строке содержит путь к этой программе.
Web-страница с которой будет запускаться этот скрипт. Она может содержать форму или просто ссылку, если скрипт не требует входных данных.
Web-сервер. Взаимодействие между web-страницей и скриптом производится сервером. Поэтому вы должны иметь доступ к web-серверу с возможностью записи и запуска на нем скриптов.

Где взять Perl



Существует много различных мест, где можно получить информацию о последних версиях Perl.
Общая информация о Perl - http://www.perl.com/perl/index.html
Perl для UNIX - http://www.perl.com/perl/info/software.html
Perl для Win32 - http://ntperl.hip.com

Этапы создания скрипта



После того, как вы установили на своем компьютере необходимое ПО, нужно совершить несколько шагов для запуска Perl на вашем узле:
Создать форму для вызова скрипта.
Создать сам скрипт.
Отладить скрипт. Проверить отсутствие ошибок (если это возможно, лучше проверить все возможные пути выполнения программы).
Поместить скрипт на сервер и не забыть дать ему права на выполнение.
Связать скрипт с формой, вставив его имя в параметр action тэга form. Например:
<form method=post action="/cgi-bin/scriptname.pl">

Убедиться, что скрипт правильно работает вместе с формой.

Основные части Perl скрипта


В общем случае любой Perl скрипт состоит из четырех ключевых частей:
Настойка. Первая часть скрипта обязательно запускает интерпретатор и устанавливает переменный, используемые в теле скрипта. Для запуска интерпретатора необходимо знать правильный путь к программе.
Чтение входных данных. Эта часть "считывает" и сохраняет в переменных входные данные в удобной для обработки форме. Эта часть обычно неизменна во всех скриптах.
Обработка входных данных. Эта часть соответствующим образом обрабатывает введенные данные. Она может быть простой (около 5 строк) или очень сложной (более 1000 строк) в зависимости от выполняемой задачи.
Вывод результатов. Пользователь обычно ожидает какого-либо ответа на свои действия. Эта часть достаточно проста в реализации.

Пример скрипта с формой



Рассмотрим теперь описанные нами шаги на конкретном примере. От вас не требуется понимания каждой строки скрипта, все они будут объяснены ниже.

Шаг 1 - Создание формы

Создадим для простоты форму, содержащую всего одно поле и позволяющую пользователю зарегистрировать его имя. Напишем в редакторе следующий текст:
<html>
<head>
<title>Test Form</title>
</head>

<body>
<form method=post action"cgi-bin/testform.pl">
<b>Введите Ваше имя: </b>
<input name="user_name" value="" size=20>
<input type="submit" value="Зарегистрировать">
</form>
</body>
</html>

Сохраните файл на диске.

Шаг 2 - Создание скрипта

Предложенный ниже скрипт берет введенные данные, сохраняет их в файле и показывает сообщение, содержащее ссылку на файл с сохраненным именем. Наберите в редакторе текст программы и сохраните в файле testform.pl в каталоге cgi-bin вашего web-сервера. Убедитесь, что первая строка программы содержит правильный путь к программе-интерпретатору (для определения местоположения программы на UNIX воспользуйтесь командой which perl, под Windows выполните поиск файла perl.exe). Убедитесь также, что путь к выходному файлу является корректным путем к области хранения документов web-сервера. В заключение исправьте URL на адрес вашего сервера.
#!/usr/local/bin/perl # <-- ПРОВЕРЬТЕ ЭТО

# Read and parse input from the web form

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

@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|n)*-->//g;
$input{$name} = $value;
}

# Save the user output in a file

$targetfile = "/usr/local/www/htdocs/names.html"; # <-- ПРОВЕРЬТЕ ЭТО

open (NAMEFILE, ">>$targetfile");
print NAMEFILE "<h3>Имя: ",$input{'user_name'},"</h3>n";
print NAMEFILE "<p><hr><p>n";
close (NAMEFILE);

# Send a message back to the user
print "Content-Type: text/htmlnn";

print "<h3>Спасибо, что заполнили форму</h3>nНажмите ";
print '<a href="http://server-name/names.html">сюда</a>'; # <-- ЗАМЕНИТЕ ЭТО
print ", чтобы увидеть Ваш ввод.n";
Шаг 3 - Тестирование скрипта

Проверив скрипт визуально на наличие ошибок - отсутствие ";" в конце строк, наличие непарных скобок и кавычек и т.п., запустите скрипт для проверки прямо из командной строки, перейдя предварительно в каталог cgi-bin. Вот некоторые примеры того, как это делается:
./testform.pl
/usr/local/bin/perl testform.pl
c:perlperl.exe testform.pl

Если в скрипте содержатся ошибки, то вы увидите сообщение типа
syntax error at testform.pl line 18, near "open"
Execution of testform.pl aborted due to compilation errors.

В этом случае проверьте текст около указанной строки. Помните, что причина ошибки может быть выше на несколько, иногда достаточно много строк. Исправленный скрипт сохраните, и тестируйте так до тех пор, пока он не выдаст корректных выходных данных:
Content-Type: text/html

<h3>Спасибо, что заполнили форму</h3>
Нажмите <a href="http://server-name/names.html">сюда</a>, чтобы увидеть Ваш ввод.
Шаг 4 - Тестирование скрипта с формой

Если скрипт работает сам по себе, вы можете оттестировать его с формой:
Убедитесь, что web-сервер запущен.
Запустите ваш браузер.
Наберите URL по которому находится ваша форма (обратите внимание, что строка должна начинаться с http://, а не с file://.
Введите ваше имя в поле формы и нажмите кнопку "Зарегистрировать".
Вы должны увидеть сообщение вроде этого:

Спасибо, что заполнили форму
Нажмите сюда, чтобы увидеть Ваш ввод.

Это и есть страница, сгенерированная скриптом "на лету". Если вы получили сообщение об ошибке сервера, проверьте правильность расположения скрипта и правильность значения параметра action в тэге form.
Если вы видите правильно сгенерированную страницу, нажмите на ссылку. Вы должны будете увидеть новую страницу, созданную скриптом примерно в таком виде:

Имя: Новиков

Если вы не видите этого, проверьте правильность пути в переменной $targetfile и правильность URL в предпоследней строке скрипта. В противном случае форма и скрипт правильно работают вместе. Вы успешно создали первое web-приложение.

Далее мы рассмотрим четыре части созданного нами скрипта более внимательно.
Обсуждение: Настройка скрипта

Как уже было сказано, первая часть скрипта содержит настройки, включающие в себя несколько элементов. Первая строка определяет путь к программе-интерпретатору:
#!/usr/local/bin/perl для UNIX
или
Program FilesPerl5perl.exe для Win32

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

Комментарии могут располагаться в любом месте программы и начинаются с символа #:
# Это комментарий
или
open (NAMEFILE, ">$testfile"); #Открываем файл для записи...


Также хорошей манерой является определение в начале скрипта всех констант и глобальных переменных. (Советую все пути прописывать в виде переменных, особенно если программа содержит более 50 строк, для удобства изменения местоположения файлов). Например:
$homepage = "http://server_name/home/index.html";

Все обычные переменные в Perl начинаются с символа $. Существует много других видов переменных, таких как массивы и т.п.

Все строки программы кроме первой и комментариев должны заканчиваться на ";".
Обсуждение: Чтение данных из формы

Теперь необходимо "считать" введенные пользователем данные в переменные Perl. После того как пользователь нажмет кнопку Submit в форме браузер посылает серверу имя скрипта и данные, взятые из формы. Данные передаются скрипту на стандартный вход.

Предположим, что форма содержит следующие поля:
Имя поля в форме
Имя, определенное параметром name="xxx" в тэге поля
Данные пользователя

Имя:
user_name
Andy Novikov

Компания:
co_name
TeleSputnik

Телефон:
phone
(812) 123-45-67

В этом случае данные будут посланы скрипту в следующем формате:
user_name=Andy+Novikov&co_name=TeleSputnik&phone=(812)+123-45-67

Perl скрипт должен разобрать эту строку по частям и сохранить в переменных для дальнейшей обработки. Строки, производящие эти действия достаточно стандартны:
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});


Эта строка читает данные со стандартного входа и помещает их в переменную $buffer. Длина строки передается скрипту через переменную окружения CONTENT_LENGTH.

Как только данные помещены в переменную $buffer вы можете разбить их на отдельные переменные с соответствующими им значениями:
@pairs = split(/&/, $buffer);


Теперь мы получили массив @pairs со следующими строковыми переменными:
[1] user_name=Andy+Novikov
[2] co_name=TeleSputnik
[3] phone=(812)+123-45-67

Теперь нам необходимо разбить эти строки на пары параметр-значение:
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /; # заменяем плюсы на пробелы
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|n)*-->//g;
$input{$name} = $value;
}


Таким образом вы получаете массив переменных, индексом в котором является значение параметра name поля формы, а значением - данные, введенные в соответствующее поле.
Обсуждение: Что делать с данными?

Следующим шагом является обработка данных. Но как? Все зависит от того, что вы хотите сделать с данными. В нашем примере мы на основе полученных данных создаем новый HTML документ. Нише мы рассмотрим несколько простых примеров того, что можно сделать с полученными данными. Обратите внимание, что мы не предпринимаем попыток проверить правильность (validate) содержимого полей. Хотя в реальных скриптах это является желательным, а иногда и необходимым действием.



Другие материалы по теме:

- ставим пароль на страницу
- Perl для чайников от ns
- повышение индивидуального мастерства дизайнера
- Синдром устаревшего сайта: Как технологии влияют на дизайн
- использование библиотеки mime-base64


📌 smti.ru © 2026 SMTI.RU: инструменты, знания и сообщество для создания веб-проектов | Обратная связь