Первый сайт на Perl

       

Perl - статьи

Изначально библиотека GTK+ была разработана Питером Матисом (Peter Mattis) и Спенсером Кимбелом (Spencer Kimball) для нужд графического редактора GIMP (GNU Image Manipulation Program), но потом была выделена в отдельный проект. Сама библиотека GTK+ написана на C, но существуют языковые привязки (language bindings) и для многих других языков программирования, в их числе и Perl.
Судя по графику релизов и количеству баг-фиксов, проект GTK+ развивается достаточно активными темпами. За время существования проекта вокруг него сформировалось внушительное сообщество, что также является положительным моментом. В настоящее время команда ключевых разработчиков состоит из десяти человек, представляющих такие компании, как Red Hat, Novell и Intel Open Source Technology Center.
Следует отметить хорошую поддержку механизмов интернационализации и локализации: обратите внимание на использование кодировки UTF-8 в примере.

Введение
В этой статье приводится обзор библиотеки GTK+ и её интерфейса к языку Perl Gtk2-Perl. Поскольку GUI-приложения, написанные на Gtk2-Perl, довольно большая редкость, собирать информацию приходится по крупицам. Цель статьи постараться дать объективную оценку связке Perl/GTK+: отметить сильные и слабые стороны, предупредить о возможных сложностях и проблемах.

Библиотека GTK+
Документация по библиотекам, входящим в состав GTK+, поддерживается в актуальном состоянии, однако тут есть один нюанс. Разработчики языковых привязок зачастую считают документацию по своим интерфейсам "производной" от документации по оригинальным библиотекам GTK+ и поэтому не всегда поддерживают её в актуальном состоянии. Именно такая ситуация наблюдается с Gtk2-Perl.

Гостевая книга из Perl'овки
Многие начинающие веб-мастера ставят на свои сайты гостевые книги из бесплатных сервисов. Но как же хочется иметь свою собственную! Собственная гостевая книга, со своим дизайном… Со своим дизайном. Что ж, на самом деле это вовсе не так сложно, как кажется. Давайте разберемся, как написать простую гостевую книгу на Perl.

Пример использования модулей LWP и HTML::Tree
Сама идея написать скриптик - возникла после того, как встал вопрос о том, что раздел "книги" сайта - надоело дополнять/редактировать и т.д. вручную. Захотелось это дело автоматизировать, сделать поиск и т.д. Первая идея, которая возникла, - это было создание мини интернет-магазина, куда вносились бы книги и т.д. Но, это опять таки требовало присутствия человека.

Три письма на Perl
Те, кто имел дело с Perl, знают, что написание на этом мощном языке программирования скрипта для создания и отправки писем - для начинающего дело достаточно сложное. Мы рассмотрим три варианта таких скриптов

Web Основы с LWP
LWP (сокращение от "Library for WWW in Perl") это очень популярная группа модулей языка Perl для доступа к данным в сети Internet. Как и большинство модулей языка Perl, на каждый модуль из состава LWP присутствует документация с полным описанием его интерфейса. Однако, в LWP есть множество модулей, для которых довольно сложно найти документацию по, казалось бы, простейшим вещам.

Создание пакетов и модулей в Perl
Защищенность и модульность - два великих принципа программирования. Perl обеспечивает их выполнение, предоставляя возможность разбивать программу на полуавтономные фрагменты так, что программисту не надо беспокоиться о конфликтах между ними и остальной частью программы. Для деления программы на независимые фрагменты используются пакеты Perl, которые создают непересекающиеся области имен (namespaces). Что такое область имен? Это часть программы со своей собственное областью видимости глобальных идентификаторов - другими словами, она функционирует как частная территория программиста.

Регулярные выражения в Perl
Регулярные выражения в perl одна из самых мощных его возможностей. Они позволяют сопоставлять текст с указанным шаблоном, разбивать текст в массив по шаблону, производить замену текста по шаблону и многое многое другое. Так-же иногда регекспами называются операторы поиска и замены

Защищаем Perl
Уязвимые CGI-скрипты - замечательная лазейка в компьютерные системы. Можем ли мы "перекрыть" ее со 100% надежностью, раз и навсегда? В статье проанализированы достоинства и недостатки существующих подходов к защите Perl и предложен метод защиты, основанный на "хакерской" (клин клином вышибают!) подмене системных функций процесса.

Десять практических рекомендаций разработчикам на Perl
Наиболее важный аспект любого модуля не то как он реализует заложенные в него возможности, но прежде всего то, насколько удобно эти возможности использовать. Если API модуля слишком неудобен, или слишком сложен, или слишком обширен, или слишком фрагментирован или просто используемые в нём имена плохо выбраны разработчики будут избегать его использование. Вместо этого они будут писать собственный код.

Установка в Linux/BSD
На сегодняшний день существует несколько модулей для работы с Tk (да, TIMTOWTDI в Perl ещё никто не отменял). Основное отличие между ними заключается в способе взаимодействия с библиотекой Tk: или через XS-интерфейс, или через язык Tcl. Первый подход более трудоёмок для разработки и поддержки, но обладает большей производительностью, кроме того, он является стандартной идиомой для языка Perl.

Test-coverage-report
Значение инструментов для оценки степени покрытия кода тестами зачастую недооценивают: есть мнение, что если код и так хорошо покрыт, то отчёт всего лишь подтвердит и без того известный факт, ну а если кодовая база практически не протестирована, то скудные 5% покрытия навряд ли добавят оптимизма разработчикам.

Обзор wxWidgets
Лейтмотив wxWidgets - "Native Look and Feel". Достигается это за счет использования стандартных виджетов той платформы, на которой в данный момент работает программа. К примеру, wx-приложение под Windows будет выглядеть так же как и остальные Windows-приложения, а в Mac OS X - как другие приложения Mac OS X. К слову, для некоторых платформ существует сразу несколько портов wxWidgets. Так в Linux, wxWidgets может работать "поверх" GTK+, X11 или Motif. Первый вариант, однако, наиболее распространен.

Первый сайт на Perl

Язык Perl создан системным программистом Ларри Уоллом (Larry Wall) как средство UNIX, позволяющее "склеивать" из программок, выполняющих отдельные функции, большие сценарии для решения комплекса задач, связанных с администрированием, обработкой текста и т. д. В дальнейшем он вышел за эти рамки, превратился в настоящий язык программирования, в котором нашли отражение многие тенденции, обозначившиеся в технологии программирования за последнее десятилетие, и получил широкое распространение в связи с развитием Inernet. Perl является основным средством создания приложений CGI, удобен для решения задач администрирования Web-серверов, электронной почты и других систем. Благодаря быстроте и легкости написания сценариев на этом языке он распространился и на другие платформы: DOS, Windows, OS/2, Mac, VMS и пр. Одно из основных достоинств языка Perl — его открытость и доступность. В сети Internet можно получить совершенно бесплатно исходные тексты интерпретатора perl (язык Perl — интерпретируемый, что в некоторых случаях является преимуществом) и модулей его расширения.

Предисловие
Благодаря быстроте и легкости написания сценариев на этом языке он распространился и на другие платформы: DOS, Windows, OS/2, Mac, VMS и пр. Одно из основных достоинств языка Perl — его открытость и доступность. В сети Internet можно получить совершенно бесплатно исходные тексты интерпретатора perl (язык Perl — интерпретируемый, что в некоторых случаях является преимуществом) и модулей его расширения.

Введение в мир Perl
Что такое Perl? Это сокращенное название языка программирования Practical Extraction and Report Language (Практический язык извлечений и отчетов). Что подразумевается под "извлечениями" и "отчетами"? Почему практический язык? Для чего он предназначен? Какие задачи можно решать с его помощью? Эти и многие другие вопросы возникают, естественно, у любого человека, хоть немного знакомого с информатикой, когда он впервые сталкивается с новым для него языком программирования.

Простая программа
Изучение любого языка программирования начинается с его синтаксиса, одну из неотъемлемых частей которого составляет описание структуры программы, определяющей состав и порядок расположения разнообразных конструкций в теле программы. Мы не будем отступать от сложившихся традиций и объясним необходимые понятия на примере простой программы Perl, получающей информацию от пользователя и в ответ печатающей на экране монитора приветствие.

Скалярный тип данных
Скалярный тип данных в Perl предназначен для представления и обработки числовых данных (чисел) и последовательности символов, называемых строками. Для задания в программе перечисленных данных используются буквальные константы, или литералы: числовые и строковые.

Арифметические операции
Язык программирования, предоставляя возможность определения разнообразных типов данных, должен обеспечивать их обработку, т. к. его основной целью является реализация алгоритмов обработки данных. Выполнение допустимых действий над данными осуществляется с помощью набора определенных в языке программирования операций. Операция — это выполнение определенного действия над операндами, результатом которого является новое значение.

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

Операция ввода команды
Простейшее взаимодействие с операционной системой, в которой выполняется программа Perl, реализуется операцией заключения строки данных в обратные кавычки. Содержимое такой строки передается на выполнение операционной системы, которая возвращает результат выполнения команды в эту же строку.

Дескрипторы файлов
Когда в программе мы создаем переменные и храним в них разнообразные данные, мы теряем их по завершении работы программы. Если нам необходимо сохранить данные и использовать их в разрабатываемых программах, мы создаем файл, записываем в него данные и сохраняем его на диске. Практически любой язык программирования предоставляет программисту средства манипулирования файлами и хранимыми в них данными.

Объявление формата
Как мы помним, дословный перевод аббревиатуры языка Perl включает в себя слова "язык отчетов", т. е. язык Perl предназначен не только для извлечения и обработки информации из текстовых файлов, но и для генерирования отчетов на основе этой информации. Пока что мы для вывода информации использовали функцию print (), которая не очень-то удобна для создания отчетов — определенным образом отформатированной выходной информации.

Виды ссылок
Ссылка на некоторую переменную содержит адрес этой переменной в оперативной памяти. Говорят, что ссылка указывает на переменную. Ссылки широко используются в современных языках программирования, таких как Pascal, C/C++. Вместо слова "ссылка" для обозначения термина может применяться слово "указатель". Основной областью применения ссылок является создание сложных структур данных, способных изменяться во время выполнения программы.

Регулярные выражения
Язык, созданный первоначально с главной целью — облегчить обработку большого количества отчетов, просто обязан располагать развитыми средствами для работы с текстом. Напомним, что в среде UNIX, из которой вышел язык Perl, средства для обработки текстовых строк имеются в различных утилитах: sed, awk, grep, cut. Командный интерпретатор shell, также обладающий некоторыми средствами для обработки строк, позволяет организовать совместную работу этих утилит, передавая выход одной программы на вход другой через механизм, называемый конвейером

Определение подпрограммы
Подпрограммы в языке Perl играют ту же роль, что и функции в языке С, или процедуры и функции в языке Pascal. Они выполняют две основные задачи: позволяют разбить одну (большую программу на несколько небольших частей, делая ее более ясной для понимания; объединяют операторы в'одну группу для повторного использования. В языке Perl не различаются понятия "подпрограмма" и "функция", эти слова являются синонимами.

Пакеты
Итак, пакет — это способ создания собственного изолированного пространства имен для отдельного отрезка программы. Каждый фрагмент кода Peri-программы относится к некоторому пакету. Объявление package NAMESPACE; определяет пакет NAMESPACE. Ключевое слово package является именем встроенной функции, в результате обращения к которой компилятору предписывается использовать новое пространство имен. Область действия объявления пакета определяется аналогично области видимости локальных переменных, объявленных при помощи функций ту () или local ().

Объектно-ориентированное программирование в языке Perl
Класс представляет собой сочетание структуры данных и тех действий, которые можно выполнить над этими данными. Данные называют свойствами, а действия — методами. Совмещение в классе структуры данных и действий над ними называют инкапсуляцией.

Опции командной строки
При запуске интерпретатора peri из командной строки можно задать разнообразные режимы его работы. Это достигается передачей ему специальных опций, называемых еще переключателями или просто ключами, включающих или выключающих разные режимы работы интерпретатора. Знание всех возможностей, предоставляемых опциями, позволяет более эффективно использовать интерпретатор для решения возникающих задач. Например, опция -е позволяет задать строку кода Perl непосредственно в командной строке.

Основные понятия
Основу "всемирной паутины" WWW составляют Web-узлы. Это компьютеры, на которых выполняется специальная программа — Web-сервер, ожидающая запроса со стороны клиента на выдачу документа. Документы сохраняются на Web-узле, как правило, в формате HTML. Клиентом Web-сервера является программа-браузер, выполняющаяся на удаленном компьютере, которая осуществляет запрос к Web-серверу, принимает запрошенный документ и отображает его на экране.

Конференции
Язык Perl распространяется и развивается в глобальной сети Internet. Самые последние новости из мира Perl можно найти на многочисленных Web-узлах и просто обычных страницах HTML, авторы которых являются апологетами языка Perl и входят в так называемое сообщество Perl — свободное объединение людей, использующих и развивающих язык Perl там, где требуется что-нибудь и как-нибудь автоматизировать.

Создание серверных приложений на языке PERL

Это учебное пособие написано для того чтобы помочь Вам самостоятельно изучить язык Perl и представляет собой своего рода выжимку из многих электронных и бумажных изданий подобного рода. Пройдя его Вы изучите все необходимые для разработки собственных приложений операторы и функции, узнаете об их специфических особенностях. В рамках этого курса мы будем рассматривать Perl только как язык написания CGI-сценариев. Чтобы ускоренное изучение Perl не вызывало у Вас никаких затруднений, Вы должны обладать определенным набором знаний в области создания HTML документов. Вы должны хорошо знать HTML тэги, работать с таблицами и каскадными таблицами стилей (CSS). Помимо этого вы должны иметь хотя бы начальные знания в области языков программирования высокого уровня (Pascal, Basic, Delphi, C, JavaScript и т.д.). А если Вы уже знаете PHP, то получите ни с чем не сравнимое удовольствие от изучения Perl по ускоренному курсу.

Получение данных методом GET
HTML формы функция ParseForm метод POST
Поле для ввода пароля
Скрытое поле
Переключатель
Радиокнопка
Список
Область многострочного редактирования
Метод POST
Оператор Print хеши