Программирование |
Web мастеру |
3D Графика и анимация |
Сетевая безопасность |
Гостевая книга |
Форум |
Ссылки |
Услуги |
|
|
На главную страницу > > В раздел программирование > > В раздел PERL | ||||||||||||
Введение в Perl. |
||||||||||||
Perl является интерпретируемым языком, созданным программистом Лари Уоллом (Larry Wall) для обработки больших текстов и файлов и расшифровывается, как Practical Extraction and Report Language (язык для практического извлечения данных и составления отчетов). С помощью Perl вы, например, можете создать скрипт, который открывает один или несколько файлов, обрабатывает информацию и записывает результаты. С изобретением World Wide Web, Perl оказался прекрасным средством для взаимодействия с web-серверами через Common Gateway Interface (CGI) - общий интерфейс взаимодействия. Команды Perl могут легко получить данные из формы HTML или другого источника и что-нибудь с ними сделать. Как Perl обрабатывает данные из формPerl достаточно гибок для обработки введенных данных. Например, если пользователь вводит информацию в регистрационную форму скрипт Perl может обработать ее многими способами, такими как:
Некоторые из этих примеров рассматриваются в нашем уроке. Как генерируются web-страницы "на лету"Больше всего впечатляет то, что Perl может быть использован для создания web-страниц "на лету" в ответ на запрос или действие пользователя. Новая страница может быть
Эта возможность обеспечивает истинную интерактивность вашего узла. Такие скрипты позволят web-серверу автоматически реагировать на определенный набор запросов пользователя, предоставляя данные в требуемом пользователем виде. В чем различие между программой и скриптом?Перед началом работы с Perl необходимо понять разницу между программой и скриптом. Оба из них используют набор инструкций для выполнения определенного задания, но программа скомпилирована в эффективный двоичный формат, что позволяет ей быстро выполняться на определенной платформе, в то время как скрипт хранится в оригинальном текстовом формате. За счет того, что скрипты значительно короче программ, они выполняются тоже достаточно быстро. За счет того, что скрипт не надо компилировать перед запуском он становится замечательным средством для быстрого создания и внесения исправлений в разработку интерактивных частей узла. Альтернативы PerlСуществует несколько альтернатив использованию Perl:
Несмотря на это Perl на сегодняшний день является наиболее простым и быстрым и в тоже время очень мощным средством придания интерактивности вашему узлу. Что вам требуется, чтобы запустить PerlДля запуска Perl вашей системе понадобится несколько компонент:
Где взять PerlСуществует много различных мест, где можно получить информацию о последних версиях Perl.
Этапы создания скриптаПосле того, как вы установили на своем компьютере необходимое ПО, нужно совершить несколько шагов для запуска Perl на вашем узле:
Основные части Perl скриптаВ общем случае любой Perl скрипт состоит из четырех ключевых частей:
Пример скрипта с формойРассмотрим теперь описанные нами шаги на конкретном примере. От вас не требуется понимания каждой строки скрипта, все они будут объяснены ниже. Шаг 1 - Создание формыСоздадим для простоты форму, содержащую всего одно поле и позволяющую пользователю зарегистрировать его имя. Напишем в редакторе следующий текст:
Сохраните файл на диске. Шаг 2 - Создание скриптаПредложенный ниже скрипт берет введенные данные, сохраняет их в файле и показывает сообщение, содержащее ссылку на файл с сохраненным именем. Наберите в редакторе текст программы и сохраните в файле testform.pl в каталоге cgi-bin вашего web-сервера. Убедитесь, что первая строка программы содержит правильный путь к программе-интерпретатору (для определения местоположения программы на UNIX воспользуйтесь командой which perl, под Windows выполните поиск файла perl.exe). Убедитесь также, что путь к выходному файлу является корректным путем к области хранения документов web-сервера. В заключение исправьте URL на адрес вашего сервера.
Шаг 3 - Тестирование скриптаПроверив скрипт визуально на наличие ошибок - отсутствие ";" в конце строк, наличие непарных скобок и кавычек и т.п., запустите скрипт для проверки прямо из командной строки, перейдя предварительно в каталог cgi-bin. Вот некоторые примеры того, как это делается:
Если в скрипте содержатся ошибки, то вы увидите сообщение типа
В этом случае проверьте текст около указанной строки. Помните, что причина ошибки может быть выше на несколько, иногда достаточно много строк. Исправленный скрипт сохраните, и тестируйте так до тех пор, пока он не выдаст корректных выходных данных:
Шаг 4 - Тестирование скрипта с формойЕсли скрипт работает сам по себе, вы можете оттестировать его с формой:
Спасибо, что заполнили форму Это и есть страница, сгенерированная скриптом "на лету". Если вы получили сообщение об ошибке сервера, проверьте правильность расположения скрипта и правильность значения параметра action в тэге form.
Организация: Cetis Если вы не видите этого, проверьте правильность пути в переменной $targetfile и правильность URL в предпоследней строке скрипта. В противном случае форма и скрипт правильно работают вместе. Вы успешно создали первое web-приложение. Далее мы рассмотрим четыре части созданного нами скрипта более внимательно. Обсуждение: Настройка скриптаКак уже было сказано, первая часть скрипта содержит
настройки, включающие в себя несколько элементов. Первая строка определяет путь
к
программе-интерпретатору: Также в начале скрипта вы, для удобства, можете разместить комментарий о том, для чего предназначен этот скрипт. Комментарии могут располагаться в любом месте программы
и начинаются с символа #:
или
Также хорошей манерой является определение в начале
скрипта всех констант и глобальных переменных. (Советую все пути прописывать в
виде переменных, особенно если программа содержит более 50 строк, для удобства
изменения местоположения файлов). Например:
Все обычные переменные в Perl начинаются с символа $. Существует много других видов переменных, таких как массивы и т.п. Все строки программы кроме первой и комментариев должны заканчиваться на ";". Обсуждение: Чтение данных из формыТеперь необходимо "считать" введенные пользователем данные в переменные Perl. После того как пользователь нажмет кнопку Submit в форме браузер посылает серверу имя скрипта и данные, взятые из формы. Данные передаются скрипту на стандартный вход. Предположим, что форма содержит следующие поля:
В этом случае данные будут посланы скрипту в следующем формате: user_name=Roman&co_name=TeleSputnik&phone=(095)+908-70-92 Perl скрипт должен разобрать эту строку по частям и
сохранить в переменных для дальнейшей обработки. Строки, производящие эти
действия достаточно стандартны:
Эта строка читает данные со стандартного входа и помещает их в переменную $buffer. Длина строки передается скрипту через переменную окружения CONTENT_LENGTH. Как только данные помещены в переменную $buffer вы
можете разбить их на отдельные переменные с соответствующими им
значениями:
Теперь мы получили массив @pairs со следующими
строковыми переменными: Теперь нам необходимо разбить эти строки на пары
параметр-значение:
Таким образом вы получаете массив переменных, индексом в котором является значение параметра name поля формы, а значением - данные, введенные в соответствующее поле. Обсуждение: Что делать с данными?Следующим шагом является обработка данных. Но как? Все зависит от того, что вы хотите сделать с данными. В нашем примере мы на основе полученных данных создаем новый HTML документ. Нише мы рассмотрим несколько простых примеров того, что можно сделать с полученными данными. Обратите внимание, что мы не предпринимаем попыток проверить правильность (validate) содержимого полей. Хотя в реальных скриптах это является желательным, а иногда и необходимым действием. Обсуждение: Запись в файлыОдно из действий, которое вы можете совершить над данными, это записать их в файл. Perl предоставляет набор функций для открытия, обработки и закрытия файлов. Таким образом вы можете создать новый HTML документ, добавить данные в уже существующий HTML документ или сохранить данные в текстовом файле для дальнейшей обработки. Функция открытия файла выглядит следующим
образом:
HANDLE является любым временным именем, который вы
будете использовать как идентификатор файла при проведении операций. Как только
файл открыт, вы можете писать в него, используя функцию print:
После завершения операций с файлом необходимо его
закрыть:
После этого все записанные данные будут сохранены на диск. Перед осуществлением запись в файл, вы должны убедиться, что web-сервер имеет доступ к директории, в которой находится файл и имеет права на запись в этот файл. Обратите внимание: функция close должна располагаться как можно ближе к последней функции записи в файл. Это обусловлено тем, что web-сервер выполняется в многопользовательской среде, и скрипт может запускаться одновременно несколькими пользователями. При открытии файла на запись он (файл) блокируется и другие экземпляры скрипта не смогут его открыть, что вызовет задержку в выполнении запроса. Пример: Создание новой HTML страницыСледующий пример может показаться на первый взгляд сложным, но все что он делает, это пишет некоторую информацию в файл. В связи с тем, что мы создаем web-страницу файл содержит тэги HTML вместе с обычным текстом. Помните, что \n просто вставляет перевод строки в текст для удобства последующего просмотра созданного файла. Все входные данные из формы содержатся в переменных $input{field_name}. При печати такие переменные должны выноситься за кавычки и отделяться запятыми.
Пример: Добавление в конец файлаЗапись в существующий файл проста, когда вы хотите добавить новую информацию в конец файла. Например, для добавления данных о новом пользователе в созданный выше файл вам потребуется следующий скрипт:
Пример: Добавление в середину существующего файлаБолее сложной задачей является вставка новых данных в
середину файла. Обратите внимание, что в первом примере мы вставили в файл линию
комментария, выглядящую следующим образом:
Этот комментарий будет служить нам меткой места, в которое нужно вставлять новые данные. Данный пример содержит не совсем изящное решение, но прост в реализации и понимании. Он использует временный файл, хотя можно обойтись и без него:
Пример: Отправка данных по e-mailИногда вам может потребоваться, чтобы данные введенные в форму были посланы по некоторому адресу электронной почты. Для этого вам потребуется программа посылки почты с интерфейсом командной строки. Под UNIX это может быть sendmail или mail. В данном примере данные посылаются с помощью программы sendmail. Вместо записи в файл мы используем запись в специально открытый канал (pipe):
Обсуждение: Создание web-страниц "на лету"Последней важной частью Perl скрипта является посылка результата обратно пользователю. Это достигается тем же print, но без идентификатора файла или канала. Все, что печатается на стандартный выход формирует текущий документ в окне браузера. Например:
Обратите внимание на первую строку. Эта строка содержит информацию о типе возвращаемых данных. Двойной перевод стоки при этом обязателен. Эта страница будет возвращена пользователю почти сразу после нажатия им кнопки Submit. Учтите, что это всего лишь один из многих примеров того, какой может быть страница "на лету". В принципе вы можете формировать HTML документ любой формы и содержания. |
||||||||||||
На главную страницу > > В раздел программирование > > В раздел PERL | ||||||||||||