| Содержание | Предисловие | Введение | Ссылки
| Глава 1 | Глава 2 | Глава 3 | Глава 4 | Глава 5 | Глава 6 | Глава 7 | Глава 8 | Глава 9 | Глава 10
| Глава 11 | Глава 12 | Глава 13 | Глава 14 | Глава 15 | Глава 16 | Глава 17 | Глава 18 | Глава 19
| Приложение А | Приложение Б | Приложение В | Приложение Г |

Ссылки

Где найти упражнения

    Упражнения, приведенные в этой книге, можно получить в электронном варианте разными способами: по FTP, FTPMAIL, BITFTP и UUCP. Самые дешевые, самые быстрые и самый легкие способы указаны первыми. Если читать сверху вниз, то самый лучший метод ≈ это, вероятно, первый из тех, которые работают. При непосредственной работе в Internet используйте FTP. Если у вас нет прямого соединения с Internet, но вы можете посылать электронную почту на узлы Internet и получать ее с этих узлов, используйте FTPMAIL. Если вы посылаете электронную почту по BITNET, используйте BITFTP. Если ни один из этих способов не действует, используйте UUCP.
    Примечание: упражнения разрабатывались с помощью UNIX-системы. Если вы работаете в среде UNIX, можете использовать их, не корректируя. При работе на другой платформе эти упражнения, возможно, придется слегка модифицировать. Например, при работе с UNIX каждая строка завершается символом новой строки (возврат каретки подразумевается), тогда как в DOS каждая строка должна завершаться явно указанными символами и новой строки, и возврата каретки. В зависимости от конфигурации вашей системы и используемого метода пересылки упражнений по сети вам, возможно, придется добавить символы возврата каретки. Дополнительную информацию по этому вопросу можно найти в файле README, который прилагается к упражнениям.

FTP

    Чтобы использовать FTP, вам понадобится компьютер, имеющий непосредственный выход в Internet. Ниже приведен пример сеанса связи.

% ftp ftp.ora .corn
Connected to ftp.uu.net
220 ftp.ora.corn FTP server (Version 6.34 Thu Oct 22 14:32:01 EDT 1992)ready.
Name (ftp. ora. com:username) : anonymous
331 Guest login ok, send e-mail address as password.
Password: username@hostname

(здесь используйте свое пользовательское имя и хост-имя)
230 Guest login ok, access restrictions apply. ftp>
cd /published/oreilly/nu-tshell/learn3.ng_Jperl2
250 CWD command successful.
ftp> get README
200 PORT command successful.
150 Opening ASCII mode data connection for README (xxxx bytes). 226 Transfer complete. local: README remote: README
xxxx bytes received in xxx seconds (xxx Kbytes/s)
ftp> binary
200 Type set to 1.
ftp> get examples.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for examples.tar.gz (xxxx Bytes). 226 Transfer complete, local: examples.tar.gz remote: examples.tar.gz xxxx bytes received in xxx seconds (xxx Kbytes/s)
ftp> quit 221 Goodbye.

FTPMAIL

    FTPMAIL ≈ это почтовый сервер, доступный каждому, кто имеет возможность посылать электронную почту на узлы Internet и получать ее оттуда. Доступ к FTPMAIL обеспечивают все провайдеры Internet, предоставляющие услуги электронной почты. Вот как это можно сделать.
    Вы посылаете почту на узел ftpmail@online.ora.com. В теле сообщения дайте FTP-команды, которые хотите выполнить. Сервер запустит для вас FTP-сеанс от имени анонимного пользователя и пошлет вам необходимые файлы. Чтобы получить полный справочный файл, пошлите сообщение без указания темы и с телом, состоящим из одного слова ≈ help. Ниже приведен пример сеанса работы с электронной почтой в UNIX, в ходе которого пользователь получает программы-примеры. Эта команда посылает вам перечень файлов, имеющихся в текущем каталоге, и затребованные файлы примеров. Данный перечень полезен, если существуют более поздние версии примеров, которые вас интересуют.

% mail ftpmail@online.ora.com
Subject:
Reply-to: username@hostname
(на какой компьютер вы хотите принять файлы)
open
cd /published/oreilly/nutahell/learning_perl2
dir
get README
mode binary uuencode
get examples, tar.gz
quit

    Подпись в конце сообщения приемлема, если она стоит после команды quit.

BITFTP

    BITFTP ≈ это почтовый сервер для пользователей сети BITNET. Вы посылаете на него сообщения электронной почты с запросами на получение файлов, а сервер посылает по электронной почте указанные вами файлы. Сейчас BITFTP обслуживает только тех пользователей, которые посылают на него почту с узлов, непосредственно включенных в BITNET, EARN или NetNorth. BITFTP ≈ это общедоступный сервис Принстонского университета. Чтобы воспользоваться услугами BITFTP, пошлите почтовое сообщение с необходимыми FTP-командами по адресу BITFTP@PUCC. Если вы хотите получить полный справочный файл, пошлите в теле сообщения слово HELP. Ниже приведено тело сообщения, которое следует послать на BITFTP:

FTP ftp.ora.com
NETDATA
USER anonymous
PASS ваш электронный почтовый Internet-адрес (а не BITNET-адрес)
CD /published/oreilly/nutshell/perl/learning_perl2
DIR
GET README
GET examples.tar.gz
QUIT

    Вопросы, касающиеся самого BITFTP, следует направлять на узел BITNET MAINT@PUCC.

UUCP

    Если у вас или у вашей организации есть доступ к UUNET, это значит, что у вас должна быть система, имеющая прямое UUCP-соединение с этой сетью. Найдите эту систему и введите (в одну строку):

uucp uunet\!~/published/oreillу/nutshell/learning_perl2/examples.tar.gz ваш_хост\!~/ваше_имя/

    Если вместо csh-shell вы пользуетесь Bourne-shell (sh), обратные косые можно опустить. Файл примеров должен появиться через некоторое время (день или более) в каталоге /usr/spool/uucppublic/ваше_имя.

Man-страница Тема
perlref Ссылки
perldsc Введение в структуры данных
perllol Структуры данных: списки списков
perltoot Пособие по объектно-ориентированному программированию
perlobj Объекты
perltie Объекты, скрытые за простыми переменными
perlbot Хитрости и примеры использования объектов
pertipc Межпроцессное взаимодействие
perldebug Отладка
perldiag Диагностические сообщения
perlsec Безопасность
perltrap Ловушки для неосторожных
perlstyle Руководство по стилю
perlpod Старая документация в виде простого текста
perlbook Информация о книгах
perlembed Методы встраивания Perl-кода в приложение, написанное на С или C++
perlapio Внутренний интерфейс абстрагирования ввода-вывода
perlxs Интерфейс прикладного программирования XS
perlxsfut Пособие по XS
perlgufs Внутренние функции для тех, кто разрабатывает расширения
perlcall Правила вызова из С

Телеконференции Usenet

    Телеконференции по Perl ≈ неиссякаемый источник информации (правда, иногда беспорядочной) о языке. Телеконференция comp.lang.perl.announce ≈ с низким трафиком, используется для публикации объявлений, связанных с Perl. Эти объявления часто касаются выпуска новых версий, исправления ошибок, новых расширений и модулей, часто задаваемых вопросов (FAQ).
    В телеконференции comp.lang.perl.misc, уровень трафика в которой очень высок, обсуждается практически все ≈ от технических вопросов и философии Perl до Perl-игр и Perl-поэзии. Как и сам Perl, эта телеконференция слывет полезной, и ни один вопрос не считается слишком глупым, чтобы его нельзя было задавать*.
    В телеконференции comp.lang.perl.tk обсуждаются вопросы использования популярного набора инструментальных средств Tk, входящего в состав Perl. Телеконференция comp.lang.perl.modules посвящена разработке и использованию Perl-модулей ≈ самого лучшего средства получения многократно используемого кода. Когда вы будете читать эти строки, возможно, уже появятся и другие телеконференции.
    Есть еще одна телеконференция, к материалам которой вы, может быть, захотите обратиться (по крайней мере если занимаетесь CGI-программированием в Web) ≈ comp.infosystems.www.authonng.cgi. Хотя, строго говоря, эта конференция и не посвящена Perl как таковому, большинство обсуждаемых там программ написаны на этом языке. Именно к ее материалам следует обращаться по вопросам, связанным с применением Perl в World Wide Web.


* Разумеется, некоторые вопросы слишком просты, чтобы на них отвечать, особенно те, на которые уже даны ответы в FAQ.

Домашняя страница Perl

    Если у вас есть доступ к World Wide Web, посетите домашнюю страницу Perl по адресу http://www.perl.com/perl/. Здесь вы узнаете, что нового произошло в мире Perl, сможете получить исходный код и номера портов, документацию, модули третьих фирм, базу данных ошибок Perl, информацию о списках рассылки и т.д. На этом узле имеется также сервис мультиплексирования CPAN, который описан ниже.

Сборник часто задаваемых вопросов

    Часто задаваемые вопросы (FAQ) по Perl ≈ это собрание вопросов и ответов, которые часто появляются в телеконференции comp.lang.perl.misc. Во многих отношениях это собрание можно рассматривать как дополнение к имеющимся книгам. Здесь разъясняются понятия, в которых пользователи, возможно, не разобрались, и сообщается оперативная информация о таких вещах, как последняя редакция и лучший источник для получения исходного кода Perl.
    Этот сборник FAQ периодически публикуется в телеконференции comp.lang.perl.announce. Кроме того, его можно найти в Web по адресу http://www.perl.com/perl/faq.
    Начиная с версии Perl 5.004, этот FAQ включен в документацию стандартного дистрибутива. Вот его основные разделы, каждый из которых оформлен как отдельная man-страница:

perlfaq Структурный обзор FAQ.
perlfaq1 Очень общая, высокоуровневая информация о языке Perl.
perlfaq2 Где найти исходный код и документацию на Perl, вопросы поддержки, обучения и сопутствующие вопросы.
perlfaq3 Инструментарий программиста
perlfaq4 Обработка чисел, дат, строк, массивов, хешей и разнообразные аспекты обработки данных.
perlfaq5 Ввод-вывод, дескрипторы файлов, запись на диск, форматы, нижние колонтитулы.
perlfaq6 Сопоставление с образцами и регулярные выражения.
perlfaq7 Общие вопросы, которые нельзя отнести ни к одной из других категорий.
perlfaq8 Межпроцессное взаимодействие, управление пользовательским интерфейсом: клавиатура, экран, координатно-указательные устройства.
perlfaq9 Сети, Internet и кое-что о Web.

Сообщения о дефектах

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

Как распространяется Perl

    Perl распространяется по одной из двух лицензий (на ваш выбор). Первая ≈ стандартная форма GNU Copyleft. Коротко говоря, это означает, что если вы можете выполнять Perl в своей системе, то должны иметь доступ к полному исходному коду языка без дополнительной платы. Вторая форма ≈ Artistic License, которую некоторые (особенно юристы) находят менее угрожающей, нежели Copyleft.
    В каталоге дистрибутива Perl вы найдете ряд программ-примеров. Есть и другие лакомые кусочки ≈ можете посвятить их поиску один из дождливых дней. Изучите исходный код Perl (если вы ≈ С-хакер с мазохистскими наклонностями). Взгляните на тестовый комплект. Посмотрите, как Configure определяет наличие системного вызова mkdir(l). Определите, как Perl выполняет динамическую загрузку С-модулей. В общем, делайте все, что вам по душе.

Другие книги

    Programming Perl ≈ полный справочник по Perl, тогда как нашу книгу скорее можно назвать пособием. Если вы хотите больше узнать о регулярных выражениях, используемых в Perl, предлагаем вам книгу Mastering Regular Expressions by Jeffrey E.F. Friedl (O'Reilly & Associates).
    Посмотрите также вышедшие в издательстве O'Reilly & Associates книги "CGf Programming on the World Wide Web" by Shishir Gundavaram; "Web Client Programming with Perl" by Clinton Wong; "HTML: The Definitive Guide" by Chuck Musciano and Bill Kennedy.
    Книги "The AWK Programming Language" by Aho, Kernighan, and Weinberger (Addison-Wesley) и "Sed & awk" by Dale Dougherty (O'Reilly & Associates) содержат обширный базовый материал по таким вопросам, как ассоциативные массивы, регулярные выражения и общее мировоззрение, благодаря которому появился Perl. В них приведено множество примеров, которые можно перевести на Perl с помощью конвертора awk-to-perl (а2р) или конвертора sed-to-perl (s2p). Конечно, эти конверторы не выдают совершенный Perl-код, но если вы не сможете реализовать один из этих примеров в Perl, выходная информация конвертора даст вам хорошую подсказку.
    Для Web-мастеров мы рекомендуем второе издание книги "How to Setup and Maintain a Web Site" by Lincoln Stein (Addison Wesley). Д-р Штейн, известный как автор Perl-модуля CGI.pm (см. главу 19), профессионально и всесторонне рассматривает все вопросы, связанные с администрированием Web-узла на платформах UNIX, Mac и Windows.
    Мы также рекомендуем удобный и тщательно проработанный краткий справочник "Perl 5 Desktop Reference" by Johan Vromans (O'Reilly & Associates).

Как получить Perl

    Основной пункт распространения Perl ≈ это Comprehensive Perl Archive Network, или CPAN (Сеть полных Perl-архивов). Эти архивы содержат не только исходный код, но и практически все материалы, которые вам когда-либо понадобятся для работы с Perl. CPAN зеркально копируется десятками узлов по всему свету. Главный узел ≈ ftp.funet.fi (128.214.248.6). Вы можете найти и более близкий к вам узел CPAN, получив файл /pub/languages/perl/CPAN/MIR-RORS с этого узла. Можно также обратиться с помощью Web-броузера к сервису мультиплексирования CPAN по адресу www.perl.com. Если вы запросите с этого Web-сервера файл, имя которого начинается на /CPAN/, он соединит вас с ближайшим узлом CPAN, выбрав его по вашему доменному имени. Вот некоторые популярные адреса (URL) в CPAN:
http://www.perl.corn/CPAN/
http://www.perl.com/CPAN/README.html
http://www.perl.corn/CPAN/modules
http://www.perl.com/CPAN/ports
http://www.perl.corn/CPAN/doc
http://www.perl.com/CPAN/sre/latest.tar.Gz

    Сервис мультиплексирования CPAN пробует соединить вас с локальной быстродействующей машиной через высокопроизводительный концентратор. Это, однако, получается не всегда, потому что доменные имена могут и не отражать схемы сетевых соединений. Например, ваше хост-имя может заканчиваться на .se, но при этом вам лучше будет соединяться не со Швецией, а с Северной Америкой. В этом случае вы можете самостоятельно выбрать узел по следующему URL:
http://www.perl.com/CPAN
    Обратите внимание на отсутствие косой черты в конце этого URL. Если конечная косая опущена, мультиплексор CPAN выдает меню дублирующих серверов CPAN, из который вы можете выбрать подходящий. Если ваш Web-броузер поддерживает встроенные переменные cookies, то мультиплексор CPAN автоматически запомнит выбранный вами узел.
    Ниже перечислены машины, на которых должен быть исходный код Perl и копии списка дублирующих серверов CPAN. Эти материалы можно получить по анонимному FTP. (Попробуйте использовать не IP-адреса, а имена машин, поскольку IP-адреса могут измениться.)
ftp.perl.corn (199.45.129.30)
ftp.cs.colorado.edu (131.211.80.17)
ftp.funet.fi (128.214.248.6)
ftp.cs.run.nl (131.211.80.17)

    Местонахождение главного каталога зеркального сервера CPAN на этих машинах может быть разным, но скорее всего это нечто вроде /pub/perl/CPAN.
    Где находятся файлы В главном каталоге CPAN вы увидите как минимум следующие подкаталоги:
authors
Этот каталог содержит многочисленные подкаталоги, по одному для каждого автора программного обеспечения. Например, если вы захотите найти знаменитый модуль CGI.pm Линкольна Штейна, будучи твердо уверены, что именно он его автор, то можете посмотреть в каталоге authors/lincoln_stein. Если бы вы не знали, что Штейн ≈ автор этого модуля, то можно было бы посмотреть в каталоге модулей, который описывается ниже.
doc
Каталог, содержащий всевозможную документацию на Perl. Это вся официальная документация (man-страницы) в нескольких форматах (текстовый ASCII, HTML, PostScript и собственный формат Perl POD), а также сборники часто задаваемых вопросов и интересные дополнительные документы.
modules
Каталог содержит отдельные модули, написанные на С, Perl или обоих этих языках. Расширения позволяют вам эмулировать и использовать функциональные возможности других программных продуктов, например, графических средств Tk, UNIX-библиотеки curses и математических библиотек. Они позволяют также взаимодействовать с базами данных (Oracle, Sybase и др.) и создавать HTML-файлы и CGI-сценарии.
ports
Каталог содержит исходный код и (или) двоичные файлы для Perl-портов к операционным системам, не поддерживаемых непосредственно в стандартном дистрибутиве. Эти порты - результат усилий других авторов, и не все они могут функционировать так, как описано в нашей книге.
scripts
Набор разнообразных сценариев, собранных со всего мира. Если вам нужно узнать, как сделать что-либо, или если вы просто хотите посмотреть, как другие пишут программы, просмотрите этот каталог. Подкаталог nutshell содержит примеры, приведенные в нашей книге. (Эти тексты можно также получить на узле издательства O'Reilly & Associates, ftp.ora.com, в каталоге /published/oreilly/nutshell/learning_perl2/.)
src
В этом каталоге вы найдете исходный код стандартного дистрибутива Perl. Его текущая редакция всегда находится в файле src/lutest.tar.gz. Этот большой файл содержит весь исходный код и полную документацию. Конфигурирование и инсталляция должны быть относительно простыми как в UNIX и UNIX-подобных системах, так и в VMS и OS/2. Начиная с версии 5.004, Perl инсталлируется также в 32-разрядных Windows-системах.

Использование анонимного FTP

    Если вам никогда не приходилось пользоваться анонимным FTP, разберите приведенный ниже пример сеанса с комментариями. Текст, набранный жир-ным шрифтом ≈ это то, что вы должны вводить с клавиатуры; комментарии набраны курсивом. Символ % ≈ это приглашение, которое вводить не нужно.

% ftp ftp.CPAN.org
(на самом деле такого узла нет)
Connected to ftp.CPAN.org
220 CPAN FTP server (Version wu-2.4(l) Fri Dee 1 00:00:00 EST 1995} ready.
Name (ftp.CPAN.org:CPAN) : anonymous
331 Guest login ok, send your complete e-mail address as password.
Password: camal@nutshall.ccm
(здесь введите свое пользовательское имя и имя своего хоста)
230 Guest login ok, access restrictions apply.
ftp> cd /pub/perl/CPAN/src
250 CWD command successful -
ftp> binary
(для сжатых файлов нужно задать двоичный режим передачи)
ftp> get latest.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for FILE.
226 Transfer complete.
(повторите этот шаг для каждого из нужных вам файлов)
ftp> quit
221 Goodbye.
%

    Получив файлы, распакуйте их, а затем сконфигурируйте, постройте и инсталлируйте Perl:

% gunzip < latest.tar.gz I tar xvf -% cd perl5.004

(используйте реальное имя каталога).
Теперь любую из следующих двух строк:

% sh configure


(строчная буква с ≈ для автоматического конфигурирования)

% sh Configure


(прописная буква С - для конфигурирования вручную).
Далее:

% make


(построить весь Perl)

% make test


(проверить, работает ли он)

% make install


(для этого вы должны быть привилегированным пользователем)

* Суффикс .tar.gz. означает, что это стандартный Internet-формат архива, созданного программой tar.

Как выбирать модули

    Процесс выборки и построения отдельных модулей Perl протекает немного по-другому. Скажем, вы хотите построить и инсталлировать модуль CoolMod. Сначала нужно выбрать его, воспользовавшись для этого командой ^(1) или с помощью Web-броузера обратиться к сервису модулей из hffp://www.perl.com, который всегда выбирает самую последнюю версию конкретного зарегистрированного модуля. Адрес, который нужно ввести в броузер, выглядит так: http://www.perl.com/cgi-bin/cpanmod?module=CoolMod

    Получив этот файл, сделайте следующее:


% gunzip < CoolMod-2.34.tar.gz | tar xvf -
% cd CoolMod-2 .34
% perl Makefile.PL

(создает реальный Makefile)
% make

(построить весь модуль)
% make test

(проверить, работает ли он)

% make install

(для этого вы, наверное, должны быть привилегированным пользователем)

    После успешной инсталляции модуля CoolMod (он автоматически помещается в каталог Perl-библиотеки вашей системы) в ваших программах можно использовать use CooiMod; а вы сможете читать документацию этого модуля с помощью команды man CoolMod (или perldoc CoolMod).

Обозначения, принятые в книге

В нашей книге используются следующие обозначения:
Курсив
используется для имен файлов и команд. Курсивом также выделяются термины при первом употреблении.
Моноширинный шрифт

используется в примерах и обычном тексте для выделения операций, переменных и результатов работы команд и программ.
Моноширинный жирный

используется в примерах для выделения данных, которые вводятся пользователем с терминала.
Моноширинный курсив

используется в примерах для выделения переменных, вместо которых в зависимости от контекста нужно подставлять значения. Например, переменную имя_файла необходимо заменить именем реального файла.
Сноски
используются для ввода дополнительных примечаний. Читая книгу в первый раз, не обращайте на них внимания. Иногда для упрощения изложения материала в основном тексте говорится не вся правда, а в сноске приводятся необходимые уточнения. Во многих случаях материал, данный в сноске, представляет собой более сложную информацию, которая в книге вообще может не рассматриваться.

Поддержка

    Perl ≈ это детище Ларри Уолла, и он все еще продолжает с ним нянчиться. Сообщения о дефектах и требования всевозможных улучшений, как правило, учитываются в следующих редакциях, но Ларри вовсе не обязан делать это. Тем не менее ему доставляет удовольствие получать отзывы от всех нас и осознавать, что Perl полезен всему миру. На прямую электронную почту обычно даются ответы (пусть даже и его автоответчиком), причем иногда персональные. Сейчас Ларри выступает в роли архитектора группы Perl 5 Porters ≈ плеяды очень умных людей, внесший гигантский вклад в создание нескольких последних версий языка Perl. Если бы Ларри попал под автобус, то все очень долго грустили бы, но под руководством этой группы Perl все равно продолжал бы развиваться.
    Если вы нашли какой-то дефект, можете воспользоваться Perl-программой perlbug, которая обеспечивает сбор соответствующей информации и отсылает ее по электронной почте на узел perlbug@perl.com. Члены группы Perl 5 Porters читают эту почту (наряду с теми 20-100 сообщениями, которые они ежедневно посылают друг другу) и иногда отвечают, если это действи тельно дефект. Но стоит вам воспользоваться этим адресом просто для того. чтобы выразить благодарность, как вам выскажут недовольство вашим поведением, поэтому сведите светские разговоры к абсолютному минимуму и воздержитесь от вызова актеров на бис.
    Вместо того чтобы писать непосредственно Ларри или посылать сообщение о дефекте, гораздо полезнее воспользоваться услугами диалоговой службы Perl-поддержки, которые предоставляются через Usenet-телеконференцию comp.lang.perl.misc. Если вы имеете возможность посылать и получать электронную почту по Internet, но к Usenet доступа не имеете, можете подключиться к этой телеконференции, послав запрос по адресу perl-users-request@cs.orst.edu, этот запрос попадет к человеку, который сможет соединить вас с двунаправленным шлюзом электронной почты этой телеконференции и сообщить правила работы в ней.
    Подписавшись на эту телеконференцию, вы ежедневно будете обнаруживать от 50 до 200 статей на всевозможные темы ≈ от вопросов новичков до сложных аспектов переносимости и проблем сопряжения. Иногда там будут попадаться и довольно большие программы.
    Эта телеконференция почти постоянно просматривается многими специалистами по языку Perl. В большинстве случаев ответ на ваш вопрос дается спустя считанные минуты после попадания вопроса на один из основных концентраторов Usenet. Вы только попробуйте получить поддержку на таком уровне, да еще и бесплатно, у своего любимого поставщика программных продуктов! Если же вы хотите заключить контракт на коммерческую поддержку, обратитесь к сборнику часто задаваемых вопросов по Perl.

Благодарности: первое издание

    Во-первых, я от всего сердца благодарю Чика Уэбба и фирму Taos Mountain Software (Кремниевая долина). Ребята из TMS предоставили мне возможность написать для них (при значительном содействии Чика) вводный курс по языку Perl и прочитать этот курс несколько раз. Этот опыт дал мне мотивы и ресурсы для написания и многократного прочтения нового, моего собственного курса, на базе которого и построена эта книга. Не думаю, что без содействия сотрудников TMS я занимался бы этим, и желаю им всем больших успехов в маркетинге их курса. (А если они ищут хороший текст для переработки своего курса, то у меня как раз есть одно предложение...)
    Спасибо моим рецензентам: "крестному отцу" языка Perl Ларри Уоллу (естественно), Ларри Кистлеру (руководителю службы подготовки кадров фирмы Pyramid), моему коллеге по преподаванию Perl Тому Кристиансену и слушателям курсов по Perl из фирм Intel и Pyramid, а также сотрудникам издательства O'Reilly & Associates Тане Херлик, Лару Кауфману, Пенни Мюльнеру, Линде Мюи и Энди Ораму.
    Эта книга была полностью написана и отредактирована на моем персональном компьютере Apple Macintosh Powerbook (сначала модели 140, теперь 160). В процессе работы я чаще всего находился вне своего кабинета ≈ иногда в парке, иногда в гостинице, иногда в горах, ожидая хорошей погоды для лыжных прогулок, но чаще всего в ресторанах. По сути дела, значительную часть книги я написал в пивном баре Beaverton McMenamin's недалеко от дома. В пабах сети McM's варят и подают самое вкусное пиво, самый лучший творожный пудинг и самые жирные сэндвичи в округе. В этой идеальной для работы обстановке я выпил множество пинт пива и съел гору пудинга, а мой Powerbook поглотил массу киловатт-часов электроэнергии, устраиваясь на тех четырех столах, где есть розетки. Благодарю замечательный персонал бара McM's за эту электроэнергию, а также за гостеприимство, радушие и любезность (и бесплатное место для работы). Кроме того, благодарю ресторан Beaverton Chili's, где я начал работать над этой книгой. (Но у них возле стойки не оказалось розеток, поэтому когда я нашел McM's, то перешел туда, чтобы сберечь аккумуляторы.)
    Спасибо всем пользователям Internet (особенно подписчикам телеконференции сотр.lang.perl) за их постоянную поддержку, оказываемую Ларри и мне, и за бесконечные вопросы на тему о том, как заставить Perl работать. Благодарю также Тима 0'Рейли ≈ за даосизм.
    Наконец, особая, огромная персональная благодарность ≈ моему другу Стиву Тэлботту, который направлял меня на каждом этапе этого пути (в частности, он предложил сделать "прогулку" по стране Perl, впечатления от которой представлены в конце первой главы). Его редакторская критика всегда была справедливой, а его удивительная способность бить меня по голове с исключительной нежностью позволила мне сделать мою книгу произведением искусства, которым я крайне доволен.
    Как всегда, выражаю особую благодарность Лайлу и Джеку за то, что они нашили меня почти всему тому, что я знаю о писательском ремесле.
    И, наконец, безмерная благодарность ≈ моему другу и партнеру Ларри Уоллу за то, что он дал всем нам Perl.
    Одна "Л" ≈ Рэндал ≈ книгу написала, Вторая ≈ лама ≈ на обложку прискакала. Но кто все это изобрел? То целых три "Л" ≈ Ларри Уолл!

Рэндал

Благодарности: второе издание

    Я хотел бы поблагодарить Ларри Уолла за создание Perl, членов группы Perl Porters за их постоянные усилия по сопровождению языка и все Perl-сообщество за готовность помогать друг другу.
    Спасибо также Джону Оруонту, Нэйту Торкингтону и Ларри Уоллу за рецензирование главы, посвященной CGI.

Том

Пожалуйста, пишите нам

    Комментарии и вопросы по этой книге направляйте, пожалуйста, в издательство по адресу:

О'Reilly & Associates 101 Morris Street Sebastopol, CA 95472
тел. 1-800-998-9938 (в США и Канаде),
тел. 1-707-829-0515 (международный или местный),
факс 1-707-829-0104
    Сообщения можно посылать и в электронной форме. Чтобы попасть в список рассылки или запросить каталог, пошлите сообщение по адресу nuts@ora.com.
    Сообщения с техническими вопросами и комментариями по книге направляйте по адресу.




|     Назад     |     Вперед     |


| Содержание | Предисловие | Введение | Ссылки
| Глава 1 | Глава 2 | Глава 3 | Глава 4 | Глава 5 | Глава 6 | Глава 7 | Глава 8 | Глава 9 | Глава 10
| Глава 11 | Глава 12 | Глава 13 | Глава 14 | Глава 15 | Глава 16 | Глава 17 | Глава 18 | Глава 19
| Приложение А | Приложение Б | Приложение В | Приложение Г |