На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Язык ПРОГРАММИРОВАНИЯ PERL

Perl (Practical Extraction Report Language) является переносимым, интерпрети­руемым языком, идеально приспособленным для многочисленных приложений
по обработке текста. Perl поддерживает структурированные конструкции, ис­пользуемые во многих языках программирования высокого уровня. Кроме того, он содержит огромное количество встроенных функций, накопленных им за годы эволюции в среде Unix.
Perl представляет собой бесплатное программное обеспечение. Пятая версия этого продукта есть на компакт-диске, прилагаемом к этой книге. Но в этой главе мы будем работать с четвертой версией Perl — она полностью совместима с версией, расположенной на компакт-диске, и широко распространена в Web.
ИСТОРИЯ PERL
Отцом Perl является Ларри Уолл, разработавший язык в 1986 году для создания отчетов о содержании многочисленных текстовых файлов в среде Unix. Поскольку существующие тогда средства не могли удовлетворить запросов Ларри, он изобрел свое собственное. Непонятно, однако, почему этому языку-было присвоено такое странное название — Perl. По-моему, оно происходит от Pearl (жемчужи­на) — аббревиатуры слов Practical Extraction and Report Language. После некоторой
доработки своего языка Уолл предоставил его в общественное пользование.
Популярность языка росла от года к году. В настоящее время он используется очень многими программистами.
PERL —  ИНТЕРПРЕТИРУЕМЫЙ язык ПРОГРАММИРОВАНИЯ
Perl является интерпретируемым языком программирования. Это означает, что программы, написанные на Perl, обычно исполняются путем вызова интерпре­татора Perl и передачи ему списка команд, из которых состоит программа. По­скольку интерпретатор читает и исполняет команды Perl именно таким образом, разработчики часто называют программы Perl сценариями.
Если вы знакомы с Unix, то вам, вероятно, известно, что такое сценарии обо­лочки, сценарии sed и т. д. В таком случае вы в состоянии оценить полезность и мощность языка разработки сценариев. Если же вам более привычны DOS и Windows, то все наши о сценариях должны вызывать у вас воспоми-
нания о пакетных файлах и программах BASIC. В этом случае можно отнестись к сценариям скептически. Однако не торопитесь с выводами.
СРАВНЕНИЕ PERL и C/C++
Структура Perl очень напоминает структуру языка С. В Perl есть аналоги для всех операторов С. Некоторые из них (вроде // и for) представлены в несколько мо­дифицированной форме. Чего не достает в Perl, так это указателей, структур и типов, пользователем. Как известно, С является достаточно мощ-
ным и распространенным языком программирования. Однако не следует ду­мать, что программы Perl намного уступают своим написанным на С эквивален­там. Как и у всяких средств, у Perl и у С есть свои области применения, к которым они лучше всего приспособлены. определить эти области, нуж-
но достаточно хорошо знать оба этих языка.
БОГАТСТВО ВОЗМОЖНОСТЕЙ PERL
Perl предоставляет разработчику широкий спектр возможностей для создания кратких и эффективных программ. Ниже приведены некоторые наиболее заме­чательные черты Perl (далее в этой главе вы познакомитесь с каждой из них):
• Ассоциативные массивы, которые индексируются программами посред­ством ключей, не являющихся целыми числами
• Автоматическое преобразование типов между целыми числами, числами с
плавающей запятой и строками
• Функции для преобразования двоичных данных
• Широкая поддержка так называемых регулярных выражений, которые про­граммы используют для поиска, замены и других операций, связанных с
разбором текста
• Функции ввода-вывода файлов
• Функции форматированного вывода, наподобие функции С, с добавле­нием к ним способности генерации отчетов на основе шаблонов
• Полный набор операторов С с добавлением операций сравнения строк
• Функции для работы со списками, которые поддерживают стеки, очереди и другие данные списочных типов
• Функции системного сервиса
• Богатый набор операторов и структур управления, включая подпрограммы
Чтобы научиться использовать Perl, нужно проанализировать исходные тексты программ, написанные на этом языке программирования. Самый простой путь познакомиться с Perl состоит в изучении небольших по размеру примеров. В следующих разделах вы узнаете о специфических применениях языка Perl. После того как вы освоитесь с Perl, можете смело приступать к разработке сценариев.
ИСПОЛЬЗОВАНИЕ PERL в КАЧЕСТВЕ ФИЛЬТРА ДАННЫХ
Средства систем Unix в значительной мере основаны на концепции, утверждаю­щей, что программа является фильтром данных, поступающих на ее вход. В процессе работы нежелательные данные отбрасываются. Операционная система MS-DOS также построена на этой концепции. Классическим примером фильтра данных является стандартная для всех систем Unix утилита grep. Эта программа просматривает переданные ей данные в поисках указанной строки. В конце своей работы grep выдает те строки, которые соответствуют заданному шаблону;
все остальные строки отбрасываются.
Perl идеально подходит для создания фильтров данных. Действительно, можно создать простую версию утилиты grep. Для этого достаточно воспользоваться сле­дующим сценарием:
$pattern = shift (SARGV) ; # получить образец из командной строки
{ # считать строки из потока ввода print if {/$pattern/) ; # вывести строку, соответствующую заданному шаблону }
В этом случае сценарий просто просматривает входные данные в поисках стро­ки, соответствующей заданному пользователем шаблону. Найдя такую строку,
он просто выводит ее на экран. Не беспокойтесь, если текст сценария вам пока непонятен. В этой главе вы найдете описание всех использованных в данном примере операторов.
ИСПОЛЬЗОВАНИЕ PERL в КАЧЕСТВЕ БЕЗОПАСНОГО ШЛЮЗА
Вопросам безопасности придается большое значение как в программировании CGI, так и при создании иных сетевых приложений. Часто бывает необходимо
защитить файлы и другие системные ресурсы от некорректного использования. Это особенно важно для различных серверов (Web, FTP), соединенных с Internet. Одним из методов защиты системы от атак хакеров является создание безопас­ных шлюзов. При этом все приходящие из Internet данные должны пропускаться через шлюз. В таком случае в систему смогут попасть лишь проверенные данные.
Традиционно большая часть серверов Internet работает под управлением Unix. Все они написаны на языке программирования С. Несмотря на то что С — это достаточно мощный и эффективный язык, неправильное использование его струк­тур (вроде указателей) может привести к сбою программы и созданию дополни­тельных брешей в системе безопасности.
Одним из достоинств Perl является то, что строковые переменные свою длину автоматически, в зависимости от нужд программы. В Perl невоз­можна ситуация, когда одна переменная разрушает значение другой.
Существует специальная версия Perl, которая называется В этой вер-
сии языка осуществляется проверка зависимостей между данными и предотвра­щается выполнение команд, пересылающих данные от ненадежного источника на сервер. Программа taintperl помечает все значения командной строки, пере­менных окружения и входных данных как «испорченные» и прерывает передачу
данных с выдачей сообщения о фатальной ошибке, если система получает одно
из испорченных значений.
Frontend-прогрлмм для связи с БАЗОЙ ДАННЫХ
Утилита типа/rontend для базы данных представляет собой программу, которая упрощает доступ к серверу базы данных для остальных программ. Она обрабаты­вает запрос пользователя к базе данных и на этой основе формирует свой запрос к базе данных с параметрами, необходимыми для доступа к данным на сервере. Кроме того, /голгел^-программа может обрабатывать результаты запроса, фор­мировать ответ и посылать его обратно пользователю.
Как вы узнаете, программисты создают простые приложения для баз данных исключительно на языке Perl, причем не возникает необходимости в специаль­ном сервере базы данных. Perl имеет встроенные возможности для отображения ассоциативныхмассивов (обсуждаемых в следующих разделах этой главы) на файл базы данных. В результате доступ к файлу базы данных в рамках сценария Perl так же прост, как и доступ к элементам массива, поскольку ввод-вывод прозра­чен для сценария.
Для более сложных приложений на основе баз данных Perl может выполнять роль связующего звена с сервером и функционировать как//-олгея^-программа для базы данных. Несколько специальных версий языка Perl было создано для расшире­ния поддержки конкретных серверов баз данных. Например, огареп обеспечи­вает возможность доступа к серверам баз данных Oracle.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика