Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]
О чем рассказано в этой книге
Первая четверть книги, занимающая более пяти глав, посвящена базовым типам данных Perl. В главе 1 "Строки" рассматриваются такие вопросы, как работа с подстроками, расширение вызовов функций в строках и анализ данных, разделенных запятыми. Глава 2 "Числа" описывает некоторые странности представления с плавающей запятой, разделение разрядов запятыми и процесс генерации псевдослучайных чисел. Глава 3 "Дата и время" демонстрирует преобразования между числовыми и строковыми форматами даты и применение таймеров. В главе 4 "Массивы" рассматривается все, что относится к операциям со списками и массивами, в том числе поиск уникальных элементов, эффективная сортировка и случайные перестановки элементов. Глава 5 "Хэши" завершает основы языка и представляет самый полезный тип данных - ассоциативные массивы. В ней показано, как обращаться с элементами хэша в порядке вставки, как отсортировать Хэш по значению и как хранить несколько ассоциированных значений для одного ключа.
Глава 6 "Поиск по шаблону" занимает больше всего места. Рецепты описывают преобразование универсальных символов командного интерпретатора в шаблон, поиск букв и слов, многострочные совпадения, отказ от максимализма при поиске и поиск строк, которые близки к искомым, но не совпадают с ними. Хотя глава и так получилась самой длинной, она могла бы стать еще длиннее - в каждой главе вы найдете примеры использования регулярных выражений. Это часть того, что придает Perl его неповторимость.
Три следующие главы относятся к файловой системе. В главе 7 "Доступ к файлам" показано, как открыть файл, заблокировать его для параллельной работы, модифицировать его на месте и сохранить файловый манипулятор в переменной. В главе 8 "Содержимое файлов" обсуждается проблема поиска конца увеличивающегося файла, чтение конкретной строки файла и двоичный ввод/вывод с произвольным доступом. Наконец, в главе 9 "Каталоги" описаны приемы копирования, перемещения и удаления файлов, изменения атрибутов времени файла и рекурсивной обработки всех файлов каталога.
Основное внимание в главах 10-13 уделено тому, как сделать программы более гибкими и функциональными. Глава 10 "Подпрограммы" содержит рецепты для создания устойчивых локальных переменных, передачи параметров по ссылке, косвенного вызова функций и обработки исключений. Глава 11 "Ссылки и записи" посвящена структурам данных; продемонстрированы основные операции ссылками на данные и функции. Также в ней показано, как создавать аналоги конструкции struct языка С, как сохранять и загружать их из устойчивого хранилища. В главе 12 "Пакеты библиотеки и модули", рассматривается деление программы на отдельные файлы; создание переменных и функций, действующих только в границах данного модуля; замена встроенных функций, перехват обращений к отсутствующим модулям и использование утилит h2ph и h2xs для использования кода, написанного на С и C++. Наконец, в главе 13 "Классы, объекты и связи" рассматриваются основные принципы построения объектно-ориентированных модулей для создания пользовательских типов, обладающих конструкторами, деструкторами и возможностями наследования. В других рецептах показаны примеры использования циклических структур данных, перегрузки операторов и связанных типов данных.
Две следующие главы посвящены интерфейсам: первая - интерфейсам к базам данных, вторая - к визуальным устройствам. В главе 14 "Базы данных" описана методика работы с индексированными текстовыми файлами, блокировка файлов DBM и хранение в них информации, а также продемонстрирован интерфейс Perl к базам данных SQL. В главе 15 "Пользовательские интерфейсы" рассматриваются такие темы, как очистка экрана, обработка параметров командной строки, посимвольный ввод, перемещение курсора средствами termcap и curses и независимое от платформы графическое программирование с применением Tk.
Последняя четверть книги посвящена взаимодействию с другими программами вами. В главе 16 "Управление процессами и межпроцессные взаимодействия говорится о запуске других программ и получении их вывода, об уничтожении процессов-зомби, именованных каналах, обработке сигналов и совместному использованию переменных работающими процессами. Глава 17 "Сокеты" показывает, как установить потоковое соединение или использовать датаграммы при разработке низкоуровневых сетевых приложений "клиент/сервер". В главе 18 "Протоколы Интернета" рассматриваются протоколы высокого уровня - mail, FTP, Usenet и Telnet. Глава 19 "Программирование CGI" содержит рецепты для Web-форм, перехвата ошибок, повышения безопасности за счет отказа от обращений к командному интерпретатору, использования cookies, обслуживания электронных магазинов и сохранения форм в файлах или каналах. В последней главе книги "Автоматизация в Web" описана неинтерактивная работа в Web. В числе рецептов - выборка URL, автоматизация подачи форм в сценариях, извлечение URL из Web-страниц, удаление тегов HTML, поиск свежих или устаревших ссылок и обработка серверных файлов журналов.
Платформы
Книга создавалась на основе Perl 5.004_04, что означает старшую версию 5, младшую 004 и исправления уровня 4. Большинство программ и примеров было протестировано в BSD, Linux и SunOS, но это не значит, что они будут работать только в этих системах. Perl проектировался как язык, независимый от платформы. Если вы ограничиваетесь базовыми операциями с переменными, шаблонами, подпрограммами и высокоуровневым вводом/выводом, ваша программа должна одинаково работать везде, где работает Perl, то есть практически везде. Первые две трети книги посвящены именно такому общему программированию.
Изначально Perl задумывался как высокоуровневый кросс-платформенный язык системного программирования. Хотя с того времени Perl вышел далеко за пределы исходного предназначения, он продолжает широко использоваться в системном программировании в родных системах семейства UNIX и на других платформах. Для обеспечения максимальной переносимости основное внимание уделялось открытым системам, соответствующим стандарту POSIX (Portable Operating System Interface), - к их числу принадлежат практически все разновидности UNIX и множество других операционных систем. Большинство рецептов будет работать в любой POSIX-системе без каких-либо изменений (или с минимальными изменениями).
Perl может использоваться для системного программирования даже в системах, не соответствующих стандарту POSIX. Для этого вам понадобятся специализированные модули для этих систем, однако в этой книге они не рассматриваются. Это объясняется тем, что такие программы не переносимы, - и, честно говоря, еще и тем, что в распоряжении авторов таких систем нет. Информация о специализированных модулях приведена в документации, прилагаемой к вашей версии Perl.
Не беспокойтесь - большинство рецептов, связанных с системным программированием, работает и в системах, не соответствующих стандарту POSIX (особенно рецепты, относящиеся к базам данных, сетевым средствам и работе в Web). Используемые в этих областях модули маскируют различия между платформами. Исключение составляют в первую очередь немногочисленные рецепты и программы, основанные на многозадачных конструкциях, и в первую очередь - на мощной функции fork, стандартной в семействе POSIX и редко реализуемой в других системах.
Во многих операциях со структурированными файлами используется удобная база данных /etc/passwd. При чтении текстовых файлов используется /etc/mold, а там, где была нужна внешняя программа с выходными данными, - who(1). Эти файлы были выбраны лишь для демонстрации общих принципов, действующих независимо от того, присутствуют эти файлы в вашей системе или нет.
Начало
Предисловие
Введение
Полное оглавление
Заказать книгу в магазине "Мистраль"