Использование языка PERL для написания CGI-cкриптов - Язык программирования PERL. Сфера применения
Как вы узнали из предыдущей главы, CGI обеспечивает узлам Web вoзмoжнoсть интерактивной работы с клиентскими программами, в качестве которых обычно выступает броузер. Во многих случаях узлы используют скрипты CGI для доступа к базам данных в тех случаях, когда клиент и сервер должны обмениваться данными. Использование CGI позволяет пользователю получать доступ к базе данных на Web, используя обычный Web-броузер. CGI-скрипт читает и обрабатывает содержание НТМL-форм, устанавливает соединение с базой данных, посылает ей запросы, обрабатывает результаты ответов, формируя на их основе новый НТМД документ, и затем посылает его обратно пользователю. Кроме того, все эти шаги должны быть сделаны так, чтобы обеспечить безопасность сервера.
Знакомство с языком PERL
Хочется верить, что вас удалось убедить в необходимости хотя бы рассмотреть использование языка Perl для написания скриптов CGI. В следующих разделах вы узнаете, как запускать Perl на исполнение и как создавать полезные скрипты на языке Perl. Благодаря сходству Perl и С, в этой главе мы сосредоточим внимание на том, что объединяет их, и на их различиях. Больше внимания в главе будет уделено различию между этими языками.
<HELLO WORLD> НА ЯЗЫКЕ PERL
Большинство учебников по языкам программирования начинается с простейшей программы, которая выводит текст <Hello World>. В соответствии с этой традицией мы приводим нашей книге несколько примеров программ <Hello World>. Следующий код служит для вывода на экран сообщения <Hello World> три раза, используя три различных способа:
# Три способа как сказать <Hello World>
printf("Hello world ");
printf("%s ", 'Hello world');
print "Hello World", " "
Первая строка представляет собой комментарий. На языке Perl знак диез (#) означает комментарий. Когда Perl находит этот знак, он игнорирует весь текст, начиная с него и до конца строки. Знак диез служит единственным способом ввести комментарии на языке Perl. В отличие от С здесь нет конструкции, которая сразу бы определяла несколько строк комментариев. На первый взгляд функция printf выглядит так же, как в языке С. Однако вы можете заметить, что программа не содержит функции main. Хотя скрипты поддерживают подпрограммы (аналогичные функциям С), скрипт не определяет раздела, который бы содержал тело функции main. Вместо этого интерпретатор Perl сразу начинает исполнение скрипта с первого выражения в файле. Второе выражение, содержащее функцию printf, опять-таки выглядит аналогично своему использованию в языке С, за исключением того, что вторая строка аргументов заключена в одинарные кавычки ('') в противоположность двойным ("), используемым в С. В языке Perl строка в двойных кавычках означает определенный род преобразования. Например, интерпретатор Perl преобразует выражение новой строки в двойных кавычках " " в символ новой строки. Скрипт Perl использует одинарные кавычки для включения строковых литералов, т. е. строковых выражений, как это написано выше. Например, Perl напечатает выражение в одинарных кавычках (' ') как два знака (') и 'n', а не как знак перехода на новую строку. Наконец, последняя строка кода программы содержит функцию print, которой нет в языке С. В этом случае наиболее полезная черта этой функции заключается в отсутствии скобок. Оказывается, что вы можете всегда включать скобки в состав функция языка Perl. Однако в большинстве случаев необходимости в них нет. Perl требует включения скобок только в том случае, если без них выражение оказывается не полностью определенным, двусмысленным. Тем не менее, включение скобок в код соответствует хорошей традиции, и вам не следует отказываться от нее.
Установка PERL
Теперь настало время попробовать работать с языком Perl непосредственно. Если у вас не установлен Perl на вашей системе, то необходимо сделать это. Обратитесь к файлу Perl. txt на CD-ROM, который входит в комплект книги. Далее полагаем, что Perl правильно установлен. Наберите команду для запуска скрипта Perl, аналогичную следующей:
C:PERL>perl script-name <ENTER>
Например, создайте файл с именем hello. pl, содержащий показанную ниже строку:
Print "Hello world "
Далее в командной строке наберите следующую команду:
C:PERL>perl hello. pl <ENTER>
На экране вы увидите следующий текст:
Hello World
Как уже говорилось, если вы используете UNIX-систему, то можно вызвать скрипт Perl таким же образом, как другую самостоятельную программу. Для того чтобы начать, отредактируйте файл так, чтобы первая строка была аналогична представленной ниже:
#!/usr/bin/perl
print "Hello world "
В этом случае первая строка указывает системе, что необходимо запустить скрипт, используя Perl. Можно видеть, что эта строка является комментарием и это не случайно, так что Perl, проигнорирует ее. Тем не менее, большинство UNIX командных скриптов shell просмотрят два первых символа в любом исполняемом скрипте. Если первыми символами служат #!, то shell будет использовать остаток строки в качестве команды для запуска скрипта. В данном случае такой командой является /usr/bin/perl. Shell пересдаст имя скрипта Perl автоматически. Для того чтобы запустить скрипт, необходимо запустить команду chmod для того, чтобы указать скрипту на файл, который необходимо выполнить (например, chmod + хhello. pl). В зависимости от программы shell, также может потребоваться набрать команду rehash для того, чтобы указать программе shell, что вы добавили новую команду. Возможно, также потребуется модифицировать путь к Perl, если он не инсталлирован в подкаталоге /usr/bin вашей системы.
Примечание: Большинство скриптов Perl используют в качестве расширения. р1, но это необязательно. Если вы запускаете скрипт Perl как отдельную программу, то, возможно, более удобным будет вообще опустить расширение.
Использование отладчика PERL
Может показаться преждевременным говорить сейчас об отладчике Perl. Но использование отладчика может оказаться исключительно полезным при изучении языка Perl. С ним вы можете легко испытать все программы, которые приведены в этой главе в качестве примеров. Фактически можно внести любое выражение Perl непосредственно в отладчик, используя его в качестве интерактивного Perl. Таким способом можно ознакомиться со многими возможностями языка, что намного проще, чем создавать и запускать полные скрипты. Отладчик Perl встроен в сам Perl. Можно запустить отладчик, используя ключ - d в командной строке следующим образом:
C:PERL> Perl - d hello. pl <ENTER>
В таком случае Perl загрузит скрипт hello. pl и начнет отладку. Если вы используете UNIX-систему, то можете поместить комментарий #!/usr/bin/perl - d в самом начале скрипта Perl. Если хотите загрузить Perl с отладчиком без загрузки скрипта, то можете использовать следующую команду: С: > Perl - de 0 <ENTER> В таком случае аргумент командной строки - d указывает Perl на необходимость вызова отладчика, а аргумент - e 0 заставляет выполнить Perl скрипт, состоящий из 0 строк. Поскольку скрипт 0 не существует, то Perl просто запустит отладчик. Если Perl установлен на вашу систему корректно, то на экране вы увидите следующие данные, которые говорят, что вы находитесь в отладчике:
Loading DB routines from $RCSfile: perldb. pl, v $$Revision: 4. 0. 1. 3
$$Date: 92/06/08 13:43:57 $
Emacs support available.
Enter h for help.
main '(p1000159:1):
DB<1>
Если Perl выводит ответ, но указывает на ошибку, такую как Can't locate perldb. pl @INC, то, значит, Perl установлен в вашей системе некорректно. В таком случае прочитайте readme-файлы, которые сопровождают вашу версию Perl. В отладчике можно набрать любое выражение Perl, и он немедленно его исполнит. Дополнительно можно использовать следующие команды отладчика: ? h - распечатать в качестве подсказки список команд отладчика? n - выполнять до следующего выражения? <CR> - повторить последнюю команду n или s? p выражение - сокращение для команды print выражение? q - окончить работу? r - исполнять до выхода из подпрограммы? s - один шаг по скрипту (со входом в подпрограмму)
Например, следующая команда отладчика использует функцию print для того, чтобы вывести на экран сообщение Hello World:
DB<1> prinf "Hello World "; <ENTER>
Hello World
DB<2>
Используя отладчик с помощью команды р, можно вывести на экран любое выражение. Для упрощения набора в отладчике можно опускать точку с запятой в конце выражения, поскольку отладчик добавит ее для вас. Наконец, отладчик всегда переходит на новую строку для новой команды. Следующий код иллюстрирует использование команды р: <ENTER>
DB<2> р "Hello World " <ENTER>
Hello World
DB<3>
Как можно видеть, всякий раз, когда вы набираете команду отладчика, счетчик отладчика увеличивается на единицу, что находит отражение в его строке DB. Читая дальше эту главу, вам, вероятно, стоит запустить отладчик, чтобы иметь возможность набирать в нем примеры и работать с языком Perl интерактивно.
Примечание: Для того, чтобы ввести выражение из многих строк в отладчик (debugger), необходимо использовать символ продолжения<> конце каждой строки. . Иначе отладчик сообщит о синтаксической ошибке.
Следующая команда иллюстрирует использование символа продолжения при работе с отладчиком:
DB<3> for ($i = 0; $i < 10; $i++) { <ENTER>
cont: print $i; <ENTER>
cont: } <EIITER>
0123456789
DB<4>
В этом случае для вывода чисел от 0 до 9 использовался цикл for, который будет подробно рассмотрен в этой главе.
Типы данных в PERL
Типы данных используются в программах при объявлении переменных. Короче говоря, тип данных определяет то множество значений, которые может принимать переменная, а также набор операций, которые программа может выполнять с ней. В языке Perl данные могут быть числом или строкой символов. Одно значение называется скалярной величиной или просто скаляром. Ниже приведены примеры скалярных значений, которые используются в языке Perl: ? Десятичные: 127 или 127. 0 или 1. 27Е2 ? Шестнадцатиричные: Ox7F или 0x7f? Восьмеричные: 0177 (первый 0 указывает, что используется восьмеричное число) ? Строка: "Hello World " или 'Hello World'
Например, следующая команда использует отладчик Perl для того, чтобы вывести число 0177 восьмеричной системы, соответствующее числу 127 десятичной:
DB<4> р 0177 <ENTER>
127
Perl переводит данные в свой внутренний формат. Когда Perl печатает восьмеричные или шестнадцатиричные значения, он сначала переводит их в десятичный формат, как было показано.
Примечание: Как вы узнаете, скрипт Perl позволяет использовать функцию printf для того, чтобы выводить, значения в вызываемом формате, в таком как восьмеричный или шестнадцатиричный.
В качестве внутреннего представления всех чисел используется формат с плавающей запятой двойной точности (double). Иными словами, среди внутренних форматов нет целочисленного. Тем не менее, в большинстве случаев вы можете не обращать на это внимания, и Perl сделает все сам как надо. Например, если вы используете величины в контексте, где только целочисленные значения имеют смысл, Perl сам автоматически усечет число.
Примечание: Если вы программируете на С и использовали целочисленное деление с усечением целых чисел автоматически, то, программируя на языке Perl, надо не забыть выполнить усечение вручную, используя функцию int().
Следующая команда иллюстрирует, как Perl обрабатывает числа целого типа и с плавающей запятой:
print 6 &; 3; # выведет 2
print 6. 9 &; 3. 1 #
print 7 / 2 # выведет 2. 3333 не целое
print int(7/3) # выведет 2
Точно так же, как Perl преобразует числа с плавающей запятой в целые числа: когда скрипт использует целочисленные значения, он также преобразует числа в строки и наоборот, когда такое преобразование имеет смысл. Например, если скрипт использует числа в контексте, где только строки имеют смысл, например, при соединении строк, он конвертирует числа в строки. Аналогичным образом, если требуется использовать строки там, где только числа имеют смысл, то Perl конвертирует их в числа. Работая со скриптами Perl, обычно не надо беспокоиться о внутреннем представлении скалярных величин. Perl поддерживает также концепцию булевых значений, но не имеет для их описания специального типа. Как и в С, численное значение рассматривается истинным, если оно не равно нулю. Дополнительно строковое значение рассматривается как истинное, если оно не равно '' или '0'. Некоторые булевы операторы, такие как <>> (больше), возвращают единицу в качестве значения<истинно> и нуль - в качестве <ложно>. Тем самым, ваш скрипт должен просто рассматривать ненулевые величины как строчного типа, так и числового в качестве булева значения <истинно>. Скрипты Perl могут группировать скалярные величины вместе и создавать список (list). Если скрипт хранит список в какой-то переменной, то эта переменная становится массивом (array).
Переменные
Perl поддерживает три типа переменных: скаляры, массивы и ассоциативные массивы. Как и в языке С, имена переменных пишутся с различением строчных и заглавных букв. Таким образом, имена VAR, Var и var описывают различные переменные. Скрипт может иметь скалярную переменную под именем var и переменную-массив, также названную var. Они будут различаться в языке Perl в соответствии с контекстом.
Примечание: Переменные Perl не типизированы, как это делается и в С. Например, скалярная переменная может содержать любой тип скаляра, и приведение типов осуществляется автоматически. Также, как вы могли уже заметить, переменные на языке Perl необязательно должны быть объявлены. Если переменная не объявлена, то Perl рассматривает ее как глобальную. Ниже вы познакомитесь с объявлением переменных и их областью видимости.
Похожие статьи
-
Подпрограммы - Язык программирования PERL. Сфера применения
Как и все структурированные языки программирования, Perl поддерживает подпрограммы. Подпрограмма может быть определена с помощью ключевого слова sub, как...
-
Резюме - Язык программирования PERL. Сфера применения
В этой главе рассмотрено введение в программирование на языке Perl. Используя рассмотренные здесь концепции, можно писать сложные скрипты CGI на языке...
-
Скалярные переменные - Язык программирования PERL. Сфера применения
Как отмечалось, скалярная переменная может содержать единственное значение. В языке Perl имена скалярных переменных всегда начинаются со знака ($). В еле...
-
Рекомендации по совершенствованию использования информационно-коммуникационных технологий в интернет-среде в сфере здравоохранения для нужд врачей и...
-
ОПЕРАТОР ВВОДА ДЛЯ ЧТЕНИЯ ФАЙЛА, ОПЕРАТОР ВЫВОДА - Язык программирования Паскаль
Оператор ввода для чтения файла обладает всеми свойствамии обычного оператора READ. Вкачестве параметров могут быть переменные; каждая переменная поучает...
-
Для программирования агентов могут применяться: универсальные языки (Java, C++ , Visual Basic и др.), языки представления знаний (SL, KIF), языки...
-
МОДУЛИ - Язык программирования Паскаль
Наличие модулей в Turbo Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, воспользоваться...
-
Согласно проведенным исследованиям, в отличие от врачей и организаторов здравоохранения, пациенты положительнее относятся к процессу информатизации и...
-
Языки программирования для Интернета - Теоретические основы информационных технологий
С активным развитием глобальной сети было создано немало популярных языков программирования, адаптированных специально для Интернета. Все они отличаются...
-
Для вызова ЛЕКСИКОНа следует набрать LEXICON или LEXICON имя редактируемого - файла Если в команде вызова ЛЕКСИКОНа указано имя файла, которого нет на...
-
Эволюция языков программирования - Модульное и объектно-ориентированное программирование
Принцип программного управления компьютером состоит в том, что человек подает команды на логические схемы, которые управляют различными подсистемами...
-
Принципы SOLID - Программирование на языке C++
SOLID - мнемонический акроним, введенный Майклом Фэзерсом ( Michael Feathers ) для первых пяти принципов, названных Робертом Мартином в начале 2000-х,...
-
История функционального программирования - Основные свойства функциональных языков программирования
Широко известно, что теоретические основы императивного программирования были заложены еще в 30-х годах XX века учеными Аланом Тьюрингом и Джоном фон...
-
Вопросы для самоконтроля - Объектно-ориентированное, визуальное программирование в Delphi на уроках
1. Какую новую конструкцию языка Pascal Вы узнали? 2. Почему в первом цикле переменная A начинается с 1, а переменные B и C с ноля. 3. Какие переменные и...
-
Правила записи программы на языке Си - Основы программирования
Как указывалось выше, программа перед обработкой компьютером должна быть помещена в файл на диске. Обычно этот файл имеет расширение <.c>. Рассмотрим...
-
Программа StudyProgram предназначена для того, чтобы помочь в усвоении приемов составления программ для машины Поста. Работа с программой осуществляется...
-
Код программы - Объектно-ориентированное, визуальное программирование в Delphi на уроках
Рассмотрим код процедуры Click для кнопки " Вычислить ": Procedure TForm1.Button1Click(Sender: TObject); Var X : real; { вещественный тип переменной }...
-
При извлечении текста из Интернета, он не имеет никой разметки и представлен в виде сплошного набора предложений. Для дальнейшего использования...
-
Обоснование выбора языка и среды программирования Для реализации данного курсового проекта был выбран язык программирования Visual C#. Язык основан на...
-
Язык программирования R - Технологии больших данных: анализ и выбор решения для реализации проекта
Язык программирования R является универсальным и разработан для применения в следующих областях: разведочный анализ данных, классические статистические...
-
"РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ MICROSOFT EXCEL" Цель работы Приобретение навыков решения задач линейного программирования...
-
Введение - Основные свойства функциональных языков программирования
Созданная в 1998 году спецификация языка Haskell (названного так в честь ученого Хаскелла Карри, одного из основоположников функционального...
-
Основы функционального программирования - Основные свойства функциональных языков программирования
Функциональное программирование - раздел дискретной математики и парадигма программирования (совокупность идей и понятий, определяющая стиль написания...
-
Платформа. NET Framework - Программирование на языке C++
.NET Framework - программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common...
-
Ввиду того, что для языка JAPE не предусмотрен специализированный редактор, разработчики рекомендуют использовать Vim[10] или Eclipse[11], ассоциировав...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
CoDeSys -- универсальный инструмент разработки прикладных программ для программируемых логических контроллеров на языках стандарта IEC 61131-3. Данный...
-
Основные типы данных языка Си - Основы программирования
Язык Си относится к языку с жестко определенными типами данных: каждое имя всегда обозначает объект некоторого типа, причем этот тип нельзя изменить до...
-
Правила формального описания синтаксиса языка программирования - Основы программирования
Под синтаксисом языка программирования понимают правила построения корректных конструкций данного языка. Синтаксис языка можно описать формально. Для...
-
Поколения языков программирования Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х...
-
В нашей курсовой работе была поставлена задача создания обучающей программы по информатике, с помощью которой студенты смогут проверить свои знания в...
-
Применение полученных знаний на практике. Создание приложения - Программирование на языке C++
Я применил полученные знания при разработке простого приложения TodoList. Я соблюдал все принципы SOLID. Придерживаясь принципа инверсии зависимости я...
-
Как и в любом другом вопросе, отношение к информатизации не может быть у всех пациентов, врачей и организаторов здравоохранения одинаковым. Кто-то...
-
Российская система здравоохранения: текущее состояние, основные проблемы и барьеры для дальнейшего развития Российское здравоохранение на сегодняшний...
-
Приведенный ниже программа позволяет работать с несколькими типами датчиков, так же в код встроен фильтр для более точного измерения на границе диапазона...
-
Проектирование визуальных конструкций Вторая глава описывает процесс трансформации текстового языка JAPE в визуальный язык, который позволит описывать...
-
Использование программы StudyProgram для усвоения учебного материала по кодированию информации методом четности и методом Хэмминга Программа StudyProgram...
-
"WWWSQLDesigner" позиционируется как абсолютно бесплатный, доступный для пользователей, универсальный веб-редактор, значительно упрощающий процесс...
-
JAPE позволяет анализировать текст на основе регулярных выражений. Грамматика этого языка состоит из фаз, которые сдержат в себе набор шаблонов и/или...
-
Введение - Разработка веб-редактора для описания лексико-семантических шаблонов на визуальном языке
Объем неупорядоченной и неструктурированной текстовой информации неуклонно растет, поэтому задача ее быстрой и качественной обработки актуальна сегодня...
Использование языка PERL для написания CGI-cкриптов - Язык программирования PERL. Сфера применения