Chat with us, powered by LiveChat

Use the virtual keyboard to enter text

Закрыть клавиатуру
1
!
2
@
3
#
4
$
5
%
6
^
7
&
8
*
9
(
0
)
_
!
1
@
2
#
3
$
4
%
5
^
6
&
7
*
8
(
9
)
0
_
-
Q
й
W
ц
E
у
R
к
T
е
Y
н
U
г
I
ш
O
щ
P
з
[{
х
]}
ъ
A
ф
S
ы
D
в
F
а
G
п
H
р
J
о
K
л
L
д
:;
ж
'"
э
\
ё
Shift
Z
я
X
ч
C
с
V
м
B
и
N
т
M
ь
<,
б
>.
ю
/
?
+
=
Русский
English
CAPS
Space
Enter
Вход

ВНИМАНИЕ: В данный момент данного товара нет в наличии. Добавьте данный товар в отложенные, мы обязательно сообщим о поступлении. Также вы можете попробовать найти у нас аналогичный, по названию, товар с другими выходными данными.

Программирование на Perl. 4-е изд. Уолл Л.

Programmirovanie na Perl. 4-e izd. Uoll L.

Программирование на Perl. 4-е изд. Уолл Л.

ID 314566

Вскоре после выхода первого издания в 1991 году книга "Программирование на Perl" стала считаться неоспоримой библией по языку Perl и продолжает оставаться основным руководством по этому весьма прак...

Vskore posle vykhoda pervogo izdaniya v 1991 godu kniga "Programmirovanie na Perl" stala schitatsya neosporimoy bibliey po yazyku Perl i prodolzhaet ostavatsya osnovnym rukovodstvom po etomu vesma prak...

Series
Cover
Мягкий переплет
Publication date
2014
Expected


Чтобы добавить товар в отложенные необходимо авторизоваться.
(0)

Product details

Series
Cover
Мягкий переплет
EAN
9785932862148
ISBN
978-5-93286-214-8
Publication date
2014
Page count
1152
Circulation
50
Format
70x100/16
Language

Вскоре после выхода первого издания в 1991 году книга "Программирование на Perl" стала считаться неоспоримой библией по языку Perl и продолжает оставаться основным руководством по этому весьма практичному языку. Язык Perl начал жизнь в роли мощного средства обработки текста, но быстро превратился в универсальный язык программирования, который помогает сотням и тысячам программистов, системных администраторов и энтузиастов, таких как вы, справляться со своей работой. В этом долгожданном обновлении "Верблюда" три известных автора дополнили описание языка до его текущей версии 5.14 и добавили обзор некоторых особенностей готовящейся к выходу версии 5.16. Все большую значимость в обработке текстов приобретает Юникод, а Perl предлагает лучшую и самую безболезненную поддержку этого стандарта, тесно интегрируя Юникод во все сферы, в том числе в такой популярный механизм языка Perl, как регулярные выражения. Данное издание охватывает следующие важные особенности языка Perl: новые ключевые слова и синтаксические конструкции, уровни ввода/вывода и кодировки, новые escape-последовательности, поддержка стандарта Unicode 6.0, групповые графемы и свойства символов Юникода, именованные сохраняющие группы в регулярных выражениях, рекурсивные и грамматические шаблоны, расширенный обзор архива CPAN и современные передовые приемы программирования. Предисловие В погоне за счастьем Perl – язык, с помощью которого вы сделаете свою работу. Конечно, если эта работа – программирование, то теоретически ее можно сделать с помощью любого «полного» компьютерного языка. Но опыт показывает, что компьютерные языки различаются не столько возможностью что-либо сделать, сколько легкостью, с которой это достигается. На одном полюсе находятся так называемые языки четвертого поколения, с помощью которых можно легко делать одни вещи и почти невозможно другие. На другом полюсе – так называемые языки с промышленными возможностями (industrial-strength languages), посредством которых одинаково трудно делать почти все. Perl не таков. Если сказать кратко, по задумке его создателей на этом языке легко решать простые задачи, сохраняя возможность решать и сложные. Что это за «простые задачи», которые должны решаться легко? Разумеется, те, которые мы решаем изо дня в день. Нам нужен язык, с помощью которого легко работать с числами и текстом, файлами и каталогами, компьютерами и сетями, а в особенности – с программами. Он должен позволять легко запускать внешние программы и просматривать результаты их работы в поисках интересных данных. Он должен позволять легко отправлять эти интересные данные другим программам, способным обрабатывать их особым образом. Он должен также позволять нам легко разрабатывать собственные программы, изменять их и производить отладку. И конечно, наши собственные программы должны легко компилироваться и запускаться, а также быть переносимыми на любую современную операционную систему. Все это, а также многое другое делает Perl. Первоначально разработанный как интегрирующий язык для UNIX, Perl давно распространился на большинство других операционных систем. Поскольку Perl выполняется почти везде, он является одной из наиболее переносимых сред программирования, существующих сегодня. Чтобы писать переносимые программы на C или C++, необходимо расставить все эти странные пометки #ifdef для каждой операционной системы. Для обеспечения переносимости программ на Java нужно разбираться в индивидуальных особенностях всех реализаций этой платформы. Для создания переносимых сценариев командной оболочки нужно помнить синтаксис всех команд для каждой версии операционной системы и пытаться найти общий знаменатель, благодаря которому они, как можно надеяться, будут работать всюду. А чтобы создавать переносимые программы на Visual Basic, потребуется дать более гибкое определение понятию «переносимость». :-) Perl позволяет нам счастливо избежать таких проблем, сохраняя при этом многие преимущества других языков и добавляя собственные чудеса. У этих чудес много источников: практичность набора функций Perl, изобретательность сообщества Perl и неистребимый энтузиазм движения open source в целом. Однако в значительной мере чудеса обусловлены гибридной природой Perl. У Perl смешанное происхождение, и многообразие средств в этом языке всегда считалось плюсом, а не слабостью. Perl – это язык, говорящий: «Дайте мне ваших усталых, ваших бедных» . Если вы чувствуете себя словно в теснящейся толпе и стремитесь «дышать свободно», то Perl – для вас. Perl охватывает различные культуры. Его взрывное распространение в значительной мере питалось стремлением бывших системных UNIX-программистов взять с собой как можно больше из «старого мира». Для них Perl является переносимой квинтэссенцией культуры UNIX, оазисом в пустыне «невозможности перейти из одного места в другое». Существует, однако, и движение в обратном направлении: веб-дизайнеры, работающие в Windows, с удовольствием обнаруживают возможность запускать свои Perl-программы на UNIX-сервере своей компании без доработки. Хотя Perl особенно популярен среди системных программистов и веб-разработчиков, это связано лишь с тем, что они первыми его открыли; аудитория Perl значительно шире. Получив при создании скромный статус языка обработки текста, Perl развился в сложный язык программирования общего назначения с богатой средой разработки программ, укомплектованной отладчиками, профилировщиками, компоновщиками, компиляторами, библиотеками, редакторами с подсветкой синтаксиса и другими атрибутами «настоящего» языка программирования – если они вам требуются. Но все они относятся к поддержке возможностей решения сложных задач, с чем справляются многие другие языки. Уникальность Perl в том, что он никогда не отступал от идеи легких решений для простых задач. Поскольку Perl является одновременно мощным и доступным средством, он постоянно используется во всех мыслимых сферах – от аэрокосмической техники до молекулярной биологии, от математики до лингвистики, от графики до обработки документов, от управления базами данных до сетевого администрирования. Perl используется теми, кому позарез нужно быстро проанализировать или преобразовать большие объемы данных, будь то последовательность генов ДНК, набор веб-страниц или контракты на поставку свинины. Существует много слагаемых успеха этого языка. Perl как открытый проект стал успешным еще до того, как движение open source получило свое название. Perl свободно распространяется, и так будет всегда. Каждый может работать с Perl так, как сочтет удобным, и на основе очень либеральной политики лицензирования. Если вы занимаетесь коммерческой деятельностью и хотите воспользоваться Perl, можете приступать. Язык Perl разрешается встраивать в коммерческие приложения бесплатно и без ограничений. А для тех, у кого возникнет проблема, которую сообщество Perl не сможет решить, существует безотказная страховка – сам исходный код. Сообщество Perl не занимается продажей своих профессиональных тайн под видом «обновлений». Сообщество Perl никогда не «выйдет из дела» и не оставит вас с брошенным на произвол судьбы продуктом. Безусловно, популярности Perl способствует его бесплатное распространение. Но этого недостаточно для объяснения феномена Perl, поскольку большой успех приходит далеко не ко всем бесплатно распространяемым пакетам. Дело не в том, что он бесплатен; он доставляет удовольствие. Люди чувствуют желание творить на Perl, поскольку он дает свободу самовыражения: можно выбирать между целями оптимизации – скоростью работы компьютера или скоростью программирования, между многословием и выразительностью, между «читабельностью» и простотой поддержки или повторного использования, или переносимости, или простотой изучения, или поучительностью. Можно оптимизировать даже непонятность, если принять участие в конкурсе на самую непонятную программу – Obfuscated Perl Contest. Perl способен предоставить все эти степени свободы, поскольку является языком с раздвоением личности. Это одновременно и очень простой, и очень богатый язык. Perl заимствует лучшие идеи практически повсюду и объединяет их в простую логическую систему. Для тех, кому он просто нравится, Perl – это Practical Extraction and Report Language (практический язык извлечения данных и создания отчетов). Для тех, кто любит его, Perl – это Pathologically Eclectic Rubbish Lister (паталогически эклектичный язык для распечатки чепухи). А минималистам Perl кажется проявлением бесцельной избыточности. Но это хорошо. Редукционисты должны существовать (в основном среди физиков). Редукционисты стремятся разъять целое на части. Мы, все остальные, просто пытаемся собрать целое из частей. Во многих отношениях Perl – простой язык. Не требуется знать множество особых заклинаний, чтобы скомпилировать программу на Perl – ее можно просто выполнить как пакетный файл или сценарий оболочки. Типы и структуры Perl просты в использовании и понимании. Perl не налагает свои произвольные ограничения на данные – строки и массивы могут быть сколь угодно велики, лишь бы хватило оперативной памяти, и их организация позволяет им легко увеличиваться по мере надобности. Perl не требует изучения новых синтаксиса и семантики, в значительной мере заимствуя их из других языков, с которыми вы можете быть знакомы (например, C, awk, BASIC, Python, английский и греческий). На практике почти любой программист сможет прочесть хорошо написанный код на Perl и составить себе представление о том, что он делает. Очень важно, что нет необходимости изучать Perl полностью, чтобы начать писать полезные программы. Изучение Perl можно начать с «тонкого конца». Вы можете программировать на Perl версии «Детский Лепет», и мы обещаем не смеяться над этим. Точнее, мы обещаем смеяться не более чем над первыми попытками ребенка творчески подходить к миру. Многие идеи Perl заимствованы из естественного языка, и одна из лучших его черт состоит в том, что он позволяет использовать лишь подмножество языка, если его достаточно, чтобы передать мысль. В культуре Perl приемлема любая степень владения языком. Полицию по охране языка мы к вам не пришлем. Сценарий Perl будет «правильным», если выполнит задачу прежде, чем начальник вас уволит. Будучи во многих отношениях простым, Perl является и богатым языком, в котором можно долго совершенствоваться. Это расплата за возможность решать сложные задачи. Хотя понадобится некоторое время на освоение всех средств Perl, вы будете рады иметь в своем распоряжении расширенные возможности, когда они вдруг понадобятся. Благодаря своему происхождению Perl был богатым языком уже тогда, когда считался «просто» языком преобразования данных, предназначенным для ориентирования в файлах, просмотра больших объемов текста, создания и получения динамических данных и вывода легко форматируемых отчетов, основанных на этих данных. Но в какой-то момент начался расцвет Perl. Он стал также и языком для работы с файловой системой, управления процессами, администрирования баз данных, программирования в архитектуре клиент-сервер, создания безопасных программ, управления данными в Сети и даже для объектно-ориентированного и функционального программирования. Эти возможности не были просто механически присоединены к Perl – каждая новая синергически работает с остальными, поскольку с самого начала Perl проектировался как интегрирующий язык. Но Perl умеет объединять в единое целое не только собственные функции. Он создавался как модульный, расширяемый язык. Perl позволяет быстро проектировать, программировать, отлаживать и разворачивать приложения, а также без труда расширять функциональные возможности этих приложений при необходимости. Perl можно встраивать в другие языки, а другие языки можно встраивать в Perl. С помощью механизма импорта модулей можно использовать эти внешние определения, как если бы они были встроенными функциями Perl. Объектно-ориентированные внешние библиотеки сохраняют свою объектную ориентированность в Perl. Perl помогает разработчику и в других отношениях. В отличие от строго интерпретируемых языков, таких как командные файлы и сценарии оболочки, которые компилируют и выполняют лишь одну команду за раз, Perl сначала быстро компилирует всю программу в промежуточный формат. Подобно любому другому компилятору, он осуществляет различного вида оптимизации и мгновенно реагирует на любые ошибки – от синтаксических и семантических до неудачи при связывании с библиотеками. Когда компилирующий интерфейс Perl удовлетворен вашей программой, он передает промежуточный код на выполнение интерпретатору (либо какому-либо из нескольких модулей генераторов, способных создавать текст на C или байт-код). Все это выглядит сложным, однако компилятор и интерпретатор работают весьма эффективно, и обычный цикл компиляции-прогона-исправления занимает считанные секунды. В совокупности с мощной поддержкой амортизации отказов столь короткий цикл делает Perl языком, на котором действительно возможно быстрое прототипирование. Позже, по ходу совершенствования программы, вы сможете повысить требования к себе и программировать больше за счет дисциплины, чем за интуиции. Perl и в этом окажет содействие, если его вежливо об этом попросить. Perl также способствует созданию более защищенных программ. Помимо всех обычных интерфейсов защиты, предоставляемых другими языками, Perl защищает от случайных ошибок в системе безопасности посредством уникального механизма трассировки данных, автоматически определяющего данные, которые поступили из ненадежного источника, и предотвращающего выполнение опасных операций. Наконец, Perl позволяет создавать специальные защищенные отсеки, в которых можно безопасно выполнять код сомнительного происхождения с ограничением опасных операций. Парадоксально, но самая большая помощь, которую Perl может оказать программисту, связана не столько с языком Perl, сколько с людьми, которые с ним работают. Скажем откровенно, сообщество Perl составляют люди, которые более чем кто-либо другой готовы прийти на помощь. Если считать, что в движении Perl есть что-то благочестивое, то именно это и есть его основная ценность. Ларри хотел, чтобы сообщество было чем-то вроде рая, и в целом его желание пока осуществляется. Внесите и свой вклад в то, чтобы оно таким и оставалось. Изучаете ли вы Perl ради спасения мира, или из любопытства, или по приказу вашего начальника – в любом случае этот учебник позволит освоить как основы, так и сложные вопросы. И хотя мы не намереваемся учить вас программированию, проницательный читатель что-то приобретет как от искусства, так и от науки программирования. Мы рекомендуем вам развивать в себе три великие добродетели программиста: лень, нетерпение и высокомерие (laziness, impatience, hubris). Мы надеемся, что, читая эту книгу, вы найдете ее местами довольно занимательной (а местами – крайне занимательной). Если этого окажется недостаточно, чтобы вы не заснули, постоянно напоминайте себе, что изучение Perl повысит ценность вашего резюме. Так что читайте дальше. Что нового в этом издании Проще сказать, что старого! Прошло достаточно много времени с момента выхода предыдущего издания. В свое оправдание мы можем лишь сказать, что у нас была на то пара причин, но теперь все в порядке. Третье издание вышло в середине 2000 года, как раз когда вышла версия Perl 5.6. Когда мы пишем эти строки 12 лет спустя, к выходу готовится версия Perl 5.16. Много воды утекло за эти годы: вышло несколько новых версий Perl 5 и случилось маленькое событие, которое мы называем Perl 6. Однако эта шестерка обманчива. В действительности, Perl 6 – это «младший брат» Perl 5, а не важное обновление Perl 5, как можно было бы заключить из номера версии. Но в этой книге не рассказывается об этом другом языке. Она все еще посвящена Perl 5 – версии, которой вполне успешно пользуется большинство людей во всем мире (и даже парни из проекта Perl 6!). Чтобы рассказать, что нового в этой книге, придется рассказать, что нового в Perl. Это издание – не просто «косметический ремонт», призванный повысить продажи книги. Это долгожданное обновление описания языка, продолжавшего активно развиваться в течение последних пяти лет. Мы не будем перечислять все изменения (при необходимости обратитесь к страницам perldelta), но есть кое-что, о чем нам хотелось бы рассказать отдельно. В Perl 5 мы начали добавлять новые функциональные возможности, одновременно создавая средства защиты старых программ от новых инструкций. Например, мы наконец смягчились в отношении частых просьб реализовать инструкцию, подобную инструкции switch. Однако, как это принято в мире Perl, мы сделали ее лучше и удобнее, предоставив вам более полный контроль над тем, что вы делаете. Мы назвали ее given-when, но эта инструкция будет доступна, только если вы явно попросите об этом. Любая из следующих директив включает доступ к этой новой возможности: use v5.10; use feature qw(switch); use feature qw(:5.10); а включив ее, вы получаете «заряженный» оператор switch: given ($item) { when (/a/) { say "Matched an a" } when (/bee/) { say "Matched a bee" } } В главе 4 вы познакомитесь поближе с этой и с другими новыми особенностями, так как там их обсуждение более уместно. Даже при том, что поддержка стандарта Юникод (Unicode) существует в Perl начиная с версии v5.6, она была значительно улучшена в последних версиях. В частности, это касается более полной, чем в других языках программирования на данный момент, поддержки Юникода в регулярных выражениях. Благодаря постоянному улучшению поддержки этого стандарта Perl иной раз используется даже для испытаний будущих наработок «Консорциума Юникода». В предыдущем издании этой книги весь материал, посвященный Юникоду, уместился в единственной главе, а в этом издании обсуждение этой темы встречается везде, где это уместно. Стали еще лучше регулярные выражения – одна из особенностей, устойчиво ассоциирующихся у программистов именно с языком Perl. Другие языки заимствовали язык шаблонов из Perl и дали ему название Perl Compatible Regular Expressions (регулярные выражения, совместимые с Perl), но при этом добавили некоторые свои особенности. Мы, в свою очередь, заимствовали некоторые из этих особенностей, продолжая традицию вбирать в Perl все самое лучшее отовсюду. Вы также познакомитесь с мощными новыми функциями для работы с Юникодом в шаблонах регулярных выражений. Потоки выполнения (threads) также претерпели значительные изменения. Perl поддерживает две модели многопоточного выполнения: одну мы назвали 5005threads (по номеру версии, в которой она была добавлена), а другая – потоки интерпретатора. Начиная с версии v5.10 поддерживаются только потоки интерпретатора. Однако по различным причинам мы решили не включать обсуждение этой темы в книгу, а больше внимания уделить другим особенностям. Если у вас появится желание изучить потоки выполнения, обратитесь к странице perlthrtut справочного руководства , которая содержит практически все, что мы могли бы поместить в главу, описывающую потоки выполнения. Возможно, в будущем мы добавим эту главу в качестве бесплатного приложения. С течением времени одни особенности появлялись, другие исчезали. Некоторые экспериментальные особенности оказывались неудачными, и мы заменяли их другими экспериментальными особенностями. Так были убраны и забыты псевдохеши . Если вы не знаете, что это такое, не переживайте об этом и не ищите их в этом издании. И еще: с момента последнего обновления этой книги произошла крупная революция (или две) в практике программирования на Perl, как и в культуре тестирования. Архив CPAN (Comprehensive Perl Archive Network – обширный сетевой архив ресурсов для Perl) продолжает свой экспоненциальный рост, что делает его «убойной особенностью» Perl. Хотя эта книга и не об архиве CPAN, мы все же будем рассказывать о некоторых модулях из него, когда это потребуется. Не пытайтесь реализовать все на голом Perl, без использования дополнительных модулей. Мы исключили из этого издания две главы: список модулей стандартной библиотеки и список диагностических сообщений (главы 32 и 33 в предыдущем издании). Обе они устареют еще до того, как эта книга попадет на вашу книжную полку. Мы расскажем вам, как самостоятельно получить этот список. Что касается диагностических сообщений, их можно найти на странице perldiag справочного руководства или включить вывод подробных предупреждений прагмой diagnostics. Часть 1 «Общий обзор» Начать всегда труднее всего. В этой части базовые идеи Perl излагаются в неформальном виде – устройтесь поудобнее в вашем любимом кресле. Не претендуя на роль полного учебного руководства, эта часть предлагает скоростное введение в Perl, что устроит не всякого читателя. В разделе «Печатная документация» (ниже) поищите книги, которые лучше сочетаются с вашим стилем учебы. Часть 2 «Анатомия Perl» В этой части проводится глубокое и ничем не ограниченное обсуждение внутреннего устройства языка на всех уровнях абстракции – от типов данных, переменных и регулярных выражений до подпрограмм, модулей и объектов. Читатель получит хорошее представление о том, как работает язык, а также несколько советов по правильному проектированию программ. (А тех, кто никогда не использовал язык с поиском по шаблону, ждет особое удовольствие.) Часть 3 «Perl как технология» Многое можно делать с помощью одного только Perl, но в этой части вы изучите волшебство более высокого уровня. Узнаете о том, как заставить Perl пройти через все препятствия, которые поставит перед ним ваш компьютер, – от обработки Юникода, взаимодействия процессов и многопоточности до компилирования, вызова, отладки и профилирования, а также создания собственных внешних расширений на C или C++ или интерфейсов к имеющимся API. Perl будет счастлив побеседовать с любым интерфейсом на вашем компьютере, да, пожалуй, и любом другом компьютере в Интернете, если позволят погодные условия. Часть 4 «Perl как культура» Каждому ясно, что у культуры должен быть свой язык, но сообществу Perl всегда было ясно, что у языка должна быть культура. В этой части мы рассматриваем программирование на Perl как человеческую деятельность, являющуюся частью реального мира людей. Мы также даем много советов относительно того, как заниматься самосовершенствованием и как сделать, чтобы ваши программы приносили больше пользы людям. Часть 5 «Справочный материал» Здесь собраны главы, в которых читатель сможет найти что-либо в алфавитном порядке – от специальных переменных и функций до стандартных модулей и прагм. Глоссарий будет особенно полезен тем, кто не знаком с жаргоном вычислительной техники. Например, те, кто не знает, что такое «прагма», могут прямо сейчас посмотреть значение этого слова. (А тем, кто не знает значение слова «такое», мы не можем помочь ничем.) Стандартный дистрибутив Официальная политика Perl, как отмечается в странице perlpolicy справочного руководства , заключается в поддержке двух последних официальных версий. Поскольку на момент написания этих строк текущей была версия v5.14, это означает, что официально поддерживаются обе версии, v5.12 и v5.14. Когда будет выпущена версия v5.16, официальная поддержка версии v5.12 прекратится. В настоящее время большинство производителей операционных систем включают Perl в качестве стандартной составляющей своей системы, хотя их цикл выпуска новых версий может не совпадать с циклом выпуска новых версий Perl. На момент написания данной книги Perl входит в стандартные дистрибутивы AIX, BeOS, BSDI, Debian, DG/UX, DYNIX/ptx, FreeBSD, IRIX, LynxOS, Mac OS X, OpenBSD, OS390, RedHat, SINIX, Slackware, Solaris, SuSE и Tru64. Некоторые компании поставляют Perl на отдельных CD с бесплатным программным обеспечением или через группы обслуживания клиентов. Сторонние производители, такие как ActiveState, предоставляют откомпилированные дистрибутивы для ряда операционных систем, в том числе производимых Microsoft. Даже если производитель включил Perl в стандартный дистрибутив, в конечном итоге, возможно, понадобится откомпилировать и установить Perl самостоятельно. В результате вы будете знать, что ваша версия является самой свежей, и сможете сами выбрать, куда установить библиотеки и документацию. Также можно будет решить, следует ли скомпилировать Perl с поддержкой дополнительных расширений, таких как поддержка многопоточной модели выполнения, большие файлы или множество низкоуровневых опций отладки, доступ к которым осуществляется через ключ командной строки -D. (Отладчик уровня пользователя поддерживается всегда.) Проще всего загрузить комплект исходного кода Perl, указав браузеру домашнюю страницу на www.perl.org, где на видном месте располагается информация о загружаемых файлах, а также доступны ссылки на компилированные двоичные модули для платформ, компиляторы C для которых затерялись. Можно также направиться прямо в архив CPAN, описанный в главе 19, по адресу http://www.cpan.org. Если работа с ним окажется слишком медленной (а это может случиться, поскольку он очень популярен), следует найти зеркальный сервер CPAN поблизости от себя. На странице http://www.cpan.org/SITES.html приводится список всех сайтов архива CPAN, откуда вы можете выбрать удобное для вас зеркало. Некоторые зеркала доступны по FTP, другие по HTTP (что может иметь значение для тех, кто выходит в Интернет из корпоративной сети, защищенной брандмауэром). Мультиплексор http://www.cpan.org попытается принять решение автоматически. Однако при желании вы легко сможете изменить этот выбор. Получив исходный код и распаковав его в каталог, следует прочесть файлы README и INSTALL, чтобы узнать, как выполнить сборку Perl. В каталоге может также иметься файл INSTALL.platform, где platform представляет платформу вашей операционной системы. Если данная платформа является разновидностью UNIX, то команды, необходимые для получения, конфигурирования, сборки и установки Perl, могут быть примерно следующие. Во-первых, необходимо выбрать команду, с помощью которой будет получен исходный код. Загрузить пакет можно с помощью браузера или инструмента командной строки: % wget http://www.cpan.org/src/5.0/maint.tar.gz Теперь нужно распаковать, сконфигурировать, собрать и установить: % tar zxf latest.tar.gz # или сначала gunzip, а затем tar xf. % cd perl-5.14.2 # или 5.* для других версий. % sh Configure -des # принимает ответы по умолчанию. % make test && make install # обычно требует привилегий суперпользователя Для вашей платформы могут иметься уже готовые пакеты, не требующие выполнения всех этих операций (а также включающие исправления и расширения для вашей платформы). Кроме того, многие платформы уже включают предустановленный Perl, так что описанные действия могут оказаться ненужными. Если Perl уже установлен, но вам хочется установить другую версию, можно избежать лишней работы, воспользовавшись инструментом perlbrew. Он автоматизирует все описанные действия и выполняет установку в каталог, куда вы имеете право устанавливать файлы, если не обладаете привилегиями администратора. Этот инструмент доступен в CPAN под названием App::perlbrew, но вы можете установить его, выполнив следующие действия, как описывается в документации: % curl –L http://xrl.us/perlbrewinstall | bash После установки просто позвольте этому инструменту выполнить всю работу за вас: % ~/perl5/perlbrew/bin/perlbrew install perl–5.14.2 Однако этим возможности инструмента perlbrew не ограничиваются, поэтому за дополнительной информацией обращайтесь к документации. Существуют также расширенные версии стандартного дистрибутива Perl. Компания ActiveState предлагает ActivePerl (http://www.activestate.com/activeperl/downloads) – бесплатные версии для Windows, Mac OS X и Linux и платные – для Solaris, HP-UX и AIX. Strawberry Perl (http://strawberryperl.org/) – версия для Windows, включающая различные инструменты, необходимые для компиляции и установки сторонних модулей Perl из CPAN. Citrus Perl (http://www.citrusperl.com/) – дистрибутив для Windows, Mac OS X и Linux, включающий инструментарий wxPerl для создания графических интерфейсов. Он предназначен для тех, кто желает создавать на языке Perl программы с графическим интерфейсом. А в распространении этих приложений вам поможет другой инструмент, Cava Packager (http://www.cava.co.uk/), также входящий в состав этого дистрибутива. Электронная документация Обширная электронная документация по Perl входит в состав его стандартного дистрибутива. (О печатной документации говорится в следующем разделе.) Дополнительная документация появляется, как только устанавливается новый модуль из CPAN. Упоминая в этой книге «страницы руководства Perl», мы имеем в виду комплект электронных страниц руководства по Perl, который находится на вашем компьютере. Под страницей электронного руководства (manpage) будем понимать просто файл с документацией, для чтения которого не обязательно иметь UNIX-программу man. Страницы руководства Perl могут быть установлены даже как страницы HTML, особенно в системах, отличных от UNIX. Электронные страницы руководства по Perl разделены на несколько секций, поэтому можно легко найти нужное, не продираясь через сотни страниц текста. Поскольку страница верхнего уровня называется просто perl, то в UNIX команда man perl должна привести именно на нее. Эта страница, в свою очередь, обозначает страницы, посвященные конкретным темам. Например, man perlre выведет страницу руководства по регулярным выражениям Perl. Команда perldoc часто работает в тех системах, в которых не работает команда man. В вашем дистрибутиве могут также содержаться страницы руководства по Perl в формате HTML или родном для системы формате подсказки. Уточните этот вопрос у своего системного администратора – если, конечно, сами не являетесь им.Отзывы читателейЛучшая книга из когда-либо выходивших!, 25 ноября 2012 Наконец-то я приобрел больше уверенности при работе с Perl. и все благодаря этой книге! Очень хорошо написана, и по непонятным причинам это издание нравится мне намного больше, чем предыдущее. Само собой, оно посвящено Perl 5.14, тогда как прежние издания рассказывают об очень старых версиях языка.В любом случае, если вы начинающий, если вы совершенствуетесь или же вам просто нужно освежить свои знания, купите эту книгу. Не пожалеете!Джек Дэниелс (Jack Daniels) (Клиспелл, Монтана, США)Исчерпывающий трактат о Perl, 16 ноября 2012 Если вы ищете справочник по языку Perl, поиск завершен. Эта книга и есть тот самый справочник. Я пользовался предыдущим изданием более десяти лет и надеюсь использовать данное издание еще много лет. Оно дополнено описанием множества новых особенностей и улучшений, добавленных в Perl за последнее десятилетие. Фраза на обложке книги - "Непревзойденная мощь в обработке текстов и создании сценариев" - не дает совершенно никакого представления об истинных возможностях Perl. Х. Хемкен (H. Hemken) (Сан-Хосе, Калифорния, США)Вам нужна эта книга, если используете Perl, 7 апреля 2012 Сразу скажу, что долгое время я избегал пользоваться языком Perl. Его синтаксис всегда наводил на меня ужас, и я даже представить не мог, как может возникнуть желание пользоваться им. Но настал момент, когда мое мнение перестало иметь вес. Мне пришлось заняться изучением Perl и использовать его в рабочих проектах. Друг порекомендовал мне книгу "Программирование на Perl". На мою удачу как раз вышло новое, четвертое издание.Скажу коротко: книга великолепна. Все, от общего обзора до анатомии Perl, иллюстрируется понятными примерами. На мой взгляд, книга преследует две основные цели: во-первых, познакомить читателя с языком Perl и его экосистемой и, во-вторых, стать для него справочником. Если вы сами приступили к изучению Perl или вынуждены были сделать это, как я, вы не ошибетесь, приобретя эту книгу. Она позволит вам сэкономить массу времени на поиске нужной информации в Интернете.Адриан Помильо (Adrian Pomilio) "www.uiandtherest.com" (Роли, Северная Каролина, США) Отличное обновление, 6 марта 2012 Я начинал изучение Perl с третьего издания 12 лет назад. Когда вышло четвертое издание, я погрузился в чтение на несколько часов. Эта книга почти на дюйм толще прежнего издания. Мне очень понравилось, что авторы внедрили описание новых возможностей Perl, не повредив удовольствию от чтения "Верблюда". Это как вновь встретиться со старыми друзьями.Если вы только начинаете изучать Perl, я предлагаю начать с этой книги, чтобы найти ответ на вопрос "Зачем?", а потом обратиться к книгам для начинающих, отвечающих на вопрос "Как?". Если же вы ветеран, скажу одно: эта книга стоит своих 30 баксов.Дж. Спрол (J. Sproul)

Vskore posle vykhoda pervogo izdaniya v 1991 godu kniga "Programmirovanie na Perl" stala schitatsya neosporimoy bibliey po yazyku Perl i prodolzhaet ostavatsya osnovnym rukovodstvom po etomu vesma praktichnomu yazyku. YAzyk Perl nachal zhizn v roli moshchnogo sredstva obrabotki teksta, no bystro prevratilsya v universalnyy yazyk programmirovaniya, kotoryy pomogaet sotnyam i tysyacham programmistov, sistemnykh administratorov i entuziastov, takikh kak vy, spravlyatsya so svoey rabotoy. V etom dolgozhdannom obnovlenii "Verblyuda" tri izvestnykh avtora dopolnili opisanie yazyka do ego tekushchey versii 5.14 i dobavili obzor nekotorykh osobennostey gotovyashcheysya k vykhodu versii 5.16. Vse bolshuyu znachimost v obrabotke tekstov priobretaet YUnikod, a Perl predlagaet luchshuyu i samuyu bezboleznennuyu podderzhku etogo standarta, tesno integriruya YUnikod vo vse sfery, v tom chisle v takoy populyarnyy mekhanizm yazyka Perl, kak regulyarnye vyrazheniya. Dannoe izdanie okhvatyvaet sleduyushchie vazhnye osobennosti yazyka Perl: novye klyuchevye slova i sintaksicheskie konstruktsii, urovni vvoda/vyvoda i kodirovki, novye escape-posledovatelnosti, podderzhka standarta Unicode 6.0, gruppovye grafemy i svoystva simvolov YUnikoda, imenovannye sokhranyayushchie gruppy v regulyarnykh vyrazheniyakh, rekursivnye i grammaticheskie shablony, rasshirennyy obzor arkhiva CPAN i sovremennye peredovye priemy programmirovaniya. Predislovie V pogone za schastem Perl yazyk, s pomoshchyu kotorogo vy sdelaete svoyu rabotu. Konechno, esli eta rabota programmirovanie, to teoreticheski ee mozhno sdelat s pomoshchyu lyubogo polnogo kompyuternogo yazyka. No opyt pokazyvaet, chto kompyuternye yazyki razlichayutsya ne stolko vozmozhnostyu chto-libo sdelat, skolko legkostyu, s kotoroy eto dostigaetsya. Na odnom polyuse nakhodyatsya tak nazyvaemye yazyki chetvertogo pokoleniya, s pomoshchyu kotorykh mozhno legko delat odni veshchi i pochti nevozmozhno drugie. Na drugom polyuse tak nazyvaemye yazyki s promyshlennymi vozmozhnostyami (industrial-strength languages), posredstvom kotorykh odinakovo trudno delat pochti vse. Perl ne takov. Esli skazat kratko, po zadumke ego sozdateley na etom yazyke legko reshat prostye zadachi, sokhranyaya vozmozhnost reshat i slozhnye. CHto eto za prostye zadachi, kotorye dolzhny reshatsya legko? Razumeetsya, te, kotorye my reshaem izo dnya v den. Nam nuzhen yazyk, s pomoshchyu kotorogo legko rabotat s chislami i tekstom, faylami i katalogami, kompyuterami i setyami, a v osobennosti s programmami. On dolzhen pozvolyat legko zapuskat vneshnie programmy i prosmatrivat rezultaty ikh raboty v poiskakh interesnykh dannykh. On dolzhen pozvolyat legko otpravlyat eti interesnye dannye drugim programmam, sposobnym obrabatyvat ikh osobym obrazom. On dolzhen takzhe pozvolyat nam legko razrabatyvat sobstvennye programmy, izmenyat ikh i proizvodit otladku. I konechno, nashi sobstvennye programmy dolzhny legko kompilirovatsya i zapuskatsya, a takzhe byt perenosimymi na lyubuyu sovremennuyu operatsionnuyu sistemu. Vse eto, a takzhe mnogoe drugoe delaet Perl. Pervonachalno razrabotannyy kak integriruyushchiy yazyk dlya UNIX, Perl davno rasprostranilsya na bolshinstvo drugikh operatsionnykh sistem. Poskolku Perl vypolnyaetsya pochti vezde, on yavlyaetsya odnoy iz naibolee perenosimykh sred programmirovaniya, sushchestvuyushchikh segodnya. CHtoby pisat perenosimye programmy na C ili C++, neobkhodimo rasstavit vse eti strannye pometki #ifdef dlya kazhdoy operatsionnoy sistemy. Dlya obespecheniya perenosimosti programm na Java nuzhno razbiratsya v individualnykh osobennostyakh vsekh realizatsiy etoy platformy. Dlya sozdaniya perenosimykh stsenariev komandnoy obolochki nuzhno pomnit sintaksis vsekh komand dlya kazhdoy versii operatsionnoy sistemy i pytatsya nayti obshchiy znamenatel, blagodarya kotoromu oni, kak mozhno nadeyatsya, budut rabotat vsyudu. A chtoby sozdavat perenosimye programmy na Visual Basic, potrebuetsya dat bolee gibkoe opredelenie ponyatiyu perenosimost. :-) Perl pozvolyaet nam schastlivo izbezhat takikh problem, sokhranyaya pri etom mnogie preimushchestva drugikh yazykov i dobavlyaya sobstvennye chudesa. U etikh chudes mnogo istochnikov: praktichnost nabora funktsiy Perl, izobretatelnost soobshchestva Perl i neistrebimyy entuziazm dvizheniya open source v tselom. Odnako v znachitelnoy mere chudesa obuslovleny gibridnoy prirodoy Perl. U Perl smeshannoe proiskhozhdenie, i mnogoobrazie sredstv v etom yazyke vsegda schitalos plyusom, a ne slabostyu. Perl eto yazyk, govoryashchiy: Dayte mne vashikh ustalykh, vashikh bednykh . Esli vy chuvstvuete sebya slovno v tesnyashcheysya tolpe i stremites dyshat svobodno, to Perl dlya vas. Perl okhvatyvaet razlichnye kultury. Ego vzryvnoe rasprostranenie v znachitelnoy mere pitalos stremleniem byvshikh sistemnykh UNIX-programmistov vzyat s soboy kak mozhno bolshe iz starogo mira. Dlya nikh Perl yavlyaetsya perenosimoy kvintessentsiey kultury UNIX, oazisom v pustyne nevozmozhnosti pereyti iz odnogo mesta v drugoe. Sushchestvuet, odnako, i dvizhenie v obratnom napravlenii: veb-dizaynery, rabotayushchie v Windows, s udovolstviem obnaruzhivayut vozmozhnost zapuskat svoi Perl-programmy na UNIX-servere svoey kompanii bez dorabotki. KHotya Perl osobenno populyaren sredi sistemnykh programmistov i veb-razrabotchikov, eto svyazano lish s tem, chto oni pervymi ego otkryli; auditoriya Perl znachitelno shire. Poluchiv pri sozdanii skromnyy status yazyka obrabotki teksta, Perl razvilsya v slozhnyy yazyk programmirovaniya obshchego naznacheniya s bogatoy sredoy razrabotki programm, ukomplektovannoy otladchikami, profilirovshchikami, komponovshchikami, kompilyatorami, bibliotekami, redaktorami s podsvetkoy sintaksisa i drugimi atributami nastoyashchego yazyka programmirovaniya esli oni vam trebuyutsya. No vse oni otnosyatsya k podderzhke vozmozhnostey resheniya slozhnykh zadach, s chem spravlyayutsya mnogie drugie yazyki. Unikalnost Perl v tom, chto on nikogda ne otstupal ot idei legkikh resheniy dlya prostykh zadach. Poskolku Perl yavlyaetsya odnovremenno moshchnym i dostupnym sredstvom, on postoyanno ispolzuetsya vo vsekh myslimykh sferakh ot aerokosmicheskoy tekhniki do molekulyarnoy biologii, ot matematiki do lingvistiki, ot grafiki do obrabotki dokumentov, ot upravleniya bazami dannykh do setevogo administrirovaniya. Perl ispolzuetsya temi, komu pozarez nuzhno bystro proanalizirovat ili preobrazovat bolshie obemy dannykh, bud to posledovatelnost genov DNK, nabor veb-stranits ili kontrakty na postavku svininy. Sushchestvuet mnogo slagaemykh uspekha etogo yazyka. Perl kak otkrytyy proekt stal uspeshnym eshche do togo, kak dvizhenie open source poluchilo svoe nazvanie. Perl svobodno rasprostranyaetsya, i tak budet vsegda. Kazhdyy mozhet rabotat s Perl tak, kak sochtet udobnym, i na osnove ochen liberalnoy politiki litsenzirovaniya. Esli vy zanimaetes kommercheskoy deyatelnostyu i khotite vospolzovatsya Perl, mozhete pristupat. YAzyk Perl razreshaetsya vstraivat v kommercheskie prilozheniya besplatno i bez ogranicheniy. A dlya tekh, u kogo vozniknet problema, kotoruyu soobshchestvo Perl ne smozhet reshit, sushchestvuet bezotkaznaya strakhovka sam iskhodnyy kod. Soobshchestvo Perl ne zanimaetsya prodazhey svoikh professionalnykh tayn pod vidom obnovleniy. Soobshchestvo Perl nikogda ne vyydet iz dela i ne ostavit vas s broshennym na proizvol sudby produktom. Bezuslovno, populyarnosti Perl sposobstvuet ego besplatnoe rasprostranenie. No etogo nedostatochno dlya obyasneniya fenomena Perl, poskolku bolshoy uspekh prikhodit daleko ne ko vsem besplatno rasprostranyaemym paketam. Delo ne v tom, chto on besplaten; on dostavlyaet udovolstvie. Lyudi chuvstvuyut zhelanie tvorit na Perl, poskolku on daet svobodu samovyrazheniya: mozhno vybirat mezhdu tselyami optimizatsii skorostyu raboty kompyutera ili skorostyu programmirovaniya, mezhdu mnogosloviem i vyrazitelnostyu, mezhdu chitabelnostyu i prostotoy podderzhki ili povtornogo ispolzovaniya, ili perenosimosti, ili prostotoy izucheniya, ili pouchitelnostyu. Mozhno optimizirovat dazhe neponyatnost, esli prinyat uchastie v konkurse na samuyu neponyatnuyu programmu Obfuscated Perl Contest. Perl sposoben predostavit vse eti stepeni svobody, poskolku yavlyaetsya yazykom s razdvoeniem lichnosti. Eto odnovremenno i ochen prostoy, i ochen bogatyy yazyk. Perl zaimstvuet luchshie idei prakticheski povsyudu i obedinyaet ikh v prostuyu logicheskuyu sistemu. Dlya tekh, komu on prosto nravitsya, Perl eto Practical Extraction and Report Language (prakticheskiy yazyk izvlecheniya dannykh i sozdaniya otchetov). Dlya tekh, kto lyubit ego, Perl eto Pathologically Eclectic Rubbish Lister (patalogicheski eklektichnyy yazyk dlya raspechatki chepukhi). A minimalistam Perl kazhetsya proyavleniem bestselnoy izbytochnosti. No eto khorosho. Reduktsionisty dolzhny sushchestvovat (v osnovnom sredi fizikov). Reduktsionisty stremyatsya razyat tseloe na chasti. My, vse ostalnye, prosto pytaemsya sobrat tseloe iz chastey. Vo mnogikh otnosheniyakh Perl prostoy yazyk. Ne trebuetsya znat mnozhestvo osobykh zaklinaniy, chtoby skompilirovat programmu na Perl ee mozhno prosto vypolnit kak paketnyy fayl ili stsenariy obolochki. Tipy i struktury Perl prosty v ispolzovanii i ponimanii. Perl ne nalagaet svoi proizvolnye ogranicheniya na dannye stroki i massivy mogut byt skol ugodno veliki, lish by khvatilo operativnoy pamyati, i ikh organizatsiya pozvolyaet im legko uvelichivatsya po mere nadobnosti. Perl ne trebuet izucheniya novykh sintaksisa i semantiki, v znachitelnoy mere zaimstvuya ikh iz drugikh yazykov, s kotorymi vy mozhete byt znakomy (naprimer, C, awk, BASIC, Python, angliyskiy i grecheskiy). Na praktike pochti lyuboy programmist smozhet prochest khorosho napisannyy kod na Perl i sostavit sebe predstavlenie o tom, chto on delaet. Ochen vazhno, chto net neobkhodimosti izuchat Perl polnostyu, chtoby nachat pisat poleznye programmy. Izuchenie Perl mozhno nachat s tonkogo kontsa. Vy mozhete programmirovat na Perl versii Detskiy Lepet, i my obeshchaem ne smeyatsya nad etim. Tochnee, my obeshchaem smeyatsya ne bolee chem nad pervymi popytkami rebenka tvorcheski podkhodit k miru. Mnogie idei Perl zaimstvovany iz estestvennogo yazyka, i odna iz luchshikh ego chert sostoit v tom, chto on pozvolyaet ispolzovat lish podmnozhestvo yazyka, esli ego dostatochno, chtoby peredat mysl. V kulture Perl priemlema lyubaya stepen vladeniya yazykom. Politsiyu po okhrane yazyka my k vam ne prishlem. Stsenariy Perl budet pravilnym, esli vypolnit zadachu prezhde, chem nachalnik vas uvolit. Buduchi vo mnogikh otnosheniyakh prostym, Perl yavlyaetsya i bogatym yazykom, v kotorom mozhno dolgo sovershenstvovatsya. Eto rasplata za vozmozhnost reshat slozhnye zadachi. KHotya ponadobitsya nekotoroe vremya na osvoenie vsekh sredstv Perl, vy budete rady imet v svoem rasporyazhenii rasshirennye vozmozhnosti, kogda oni vdrug ponadobyatsya. Blagodarya svoemu proiskhozhdeniyu Perl byl bogatym yazykom uzhe togda, kogda schitalsya prosto yazykom preobrazovaniya dannykh, prednaznachennym dlya orientirovaniya v faylakh, prosmotra bolshikh obemov teksta, sozdaniya i polucheniya dinamicheskikh dannykh i vyvoda legko formatiruemykh otchetov, osnovannykh na etikh dannykh. No v kakoy-to moment nachalsya rastsvet Perl. On stal takzhe i yazykom dlya raboty s faylovoy sistemoy, upravleniya protsessami, administrirovaniya baz dannykh, programmirovaniya v arkhitekture klient-server, sozdaniya bezopasnykh programm, upravleniya dannymi v Seti i dazhe dlya obektno-orientirovannogo i funktsionalnogo programmirovaniya. Eti vozmozhnosti ne byli prosto mekhanicheski prisoedineny k Perl kazhdaya novaya sinergicheski rabotaet s ostalnymi, poskolku s samogo nachala Perl proektirovalsya kak integriruyushchiy yazyk. No Perl umeet obedinyat v edinoe tseloe ne tolko sobstvennye funktsii. On sozdavalsya kak modulnyy, rasshiryaemyy yazyk. Perl pozvolyaet bystro proektirovat, programmirovat, otlazhivat i razvorachivat prilozheniya, a takzhe bez truda rasshiryat funktsionalnye vozmozhnosti etikh prilozheniy pri neobkhodimosti. Perl mozhno vstraivat v drugie yazyki, a drugie yazyki mozhno vstraivat v Perl. S pomoshchyu mekhanizma importa moduley mozhno ispolzovat eti vneshnie opredeleniya, kak esli by oni byli vstroennymi funktsiyami Perl. Obektno-orientirovannye vneshnie biblioteki sokhranyayut svoyu obektnuyu orientirovannost v Perl. Perl pomogaet razrabotchiku i v drugikh otnosheniyakh. V otlichie ot strogo interpretiruemykh yazykov, takikh kak komandnye fayly i stsenarii obolochki, kotorye kompiliruyut i vypolnyayut lish odnu komandu za raz, Perl snachala bystro kompiliruet vsyu programmu v promezhutochnyy format. Podobno lyubomu drugomu kompilyatoru, on osushchestvlyaet razlichnogo vida optimizatsii i mgnovenno reagiruet na lyubye oshibki ot sintaksicheskikh i semanticheskikh do neudachi pri svyazyvanii s bibliotekami. Kogda kompiliruyushchiy interfeys Perl udovletvoren vashey programmoy, on peredaet promezhutochnyy kod na vypolnenie interpretatoru (libo kakomu-libo iz neskolkikh moduley generatorov, sposobnykh sozdavat tekst na C ili bayt-kod). Vse eto vyglyadit slozhnym, odnako kompilyator i interpretator rabotayut vesma effektivno, i obychnyy tsikl kompilyatsii-progona-ispravleniya zanimaet schitannye sekundy. V sovokupnosti s moshchnoy podderzhkoy amortizatsii otkazov stol korotkiy tsikl delaet Perl yazykom, na kotorom deystvitelno vozmozhno bystroe prototipirovanie. Pozzhe, po khodu sovershenstvovaniya programmy, vy smozhete povysit trebovaniya k sebe i programmirovat bolshe za schet distsipliny, chem za intuitsii. Perl i v etom okazhet sodeystvie, esli ego vezhlivo ob etom poprosit. Perl takzhe sposobstvuet sozdaniyu bolee zashchishchennykh programm. Pomimo vsekh obychnykh interfeysov zashchity, predostavlyaemykh drugimi yazykami, Perl zashchishchaet ot sluchaynykh oshibok v sisteme bezopasnosti posredstvom unikalnogo mekhanizma trassirovki dannykh, avtomaticheski opredelyayushchego dannye, kotorye postupili iz nenadezhnogo istochnika, i predotvrashchayushchego vypolnenie opasnykh operatsiy. Nakonets, Perl pozvolyaet sozdavat spetsialnye zashchishchennye otseki, v kotorykh mozhno bezopasno vypolnyat kod somnitelnogo proiskhozhdeniya s ogranicheniem opasnykh operatsiy. Paradoksalno, no samaya bolshaya pomoshch, kotoruyu Perl mozhet okazat programmistu, svyazana ne stolko s yazykom Perl, skolko s lyudmi, kotorye s nim rabotayut. Skazhem otkrovenno, soobshchestvo Perl sostavlyayut lyudi, kotorye bolee chem kto-libo drugoy gotovy priyti na pomoshch. Esli schitat, chto v dvizhenii Perl est chto-to blagochestivoe, to imenno eto i est ego osnovnaya tsennost. Larri khotel, chtoby soobshchestvo bylo chem-to vrode raya, i v tselom ego zhelanie poka osushchestvlyaetsya. Vnesite i svoy vklad v to, chtoby ono takim i ostavalos. Izuchaete li vy Perl radi spaseniya mira, ili iz lyubopytstva, ili po prikazu vashego nachalnika v lyubom sluchae etot uchebnik pozvolit osvoit kak osnovy, tak i slozhnye voprosy. I khotya my ne namerevaemsya uchit vas programmirovaniyu, pronitsatelnyy chitatel chto-to priobretet kak ot iskusstva, tak i ot nauki programmirovaniya. My rekomenduem vam razvivat v sebe tri velikie dobrodeteli programmista: len, neterpenie i vysokomerie (laziness, impatience, hubris). My nadeemsya, chto, chitaya etu knigu, vy naydete ee mestami dovolno zanimatelnoy (a mestami krayne zanimatelnoy). Esli etogo okazhetsya nedostatochno, chtoby vy ne zasnuli, postoyanno napominayte sebe, chto izuchenie Perl povysit tsennost vashego rezyume. Tak chto chitayte dalshe. CHto novogo v etom izdanii Proshche skazat, chto starogo! Proshlo dostatochno mnogo vremeni s momenta vykhoda predydushchego izdaniya. V svoe opravdanie my mozhem lish skazat, chto u nas byla na to para prichin, no teper vse v poryadke. Trete izdanie vyshlo v seredine 2000 goda, kak raz kogda vyshla versiya Perl 5.6. Kogda my pishem eti stroki 12 let spustya, k vykhodu gotovitsya versiya Perl 5.16. Mnogo vody uteklo za eti gody: vyshlo neskolko novykh versiy Perl 5 i sluchilos malenkoe sobytie, kotoroe my nazyvaem Perl 6. Odnako eta shesterka obmanchiva. V deystvitelnosti, Perl 6 eto mladshiy brat Perl 5, a ne vazhnoe obnovlenie Perl 5, kak mozhno bylo by zaklyuchit iz nomera versii. No v etoy knige ne rasskazyvaetsya ob etom drugom yazyke. Ona vse eshche posvyashchena Perl 5 versii, kotoroy vpolne uspeshno polzuetsya bolshinstvo lyudey vo vsem mire (i dazhe parni iz proekta Perl 6!). CHtoby rasskazat, chto novogo v etoy knige, pridetsya rasskazat, chto novogo v Perl. Eto izdanie ne prosto kosmeticheskiy remont, prizvannyy povysit prodazhi knigi. Eto dolgozhdannoe obnovlenie opisaniya yazyka, prodolzhavshego aktivno razvivatsya v techenie poslednikh pyati let. My ne budem perechislyat vse izmeneniya (pri neobkhodimosti obratites k stranitsam perldelta), no est koe-chto, o chem nam khotelos by rasskazat otdelno. V Perl 5 my nachali dobavlyat novye funktsionalnye vozmozhnosti, odnovremenno sozdavaya sredstva zashchity starykh programm ot novykh instruktsiy. Naprimer, my nakonets smyagchilis v otnoshenii chastykh prosb realizovat instruktsiyu, podobnuyu instruktsii switch. Odnako, kak eto prinyato v mire Perl, my sdelali ee luchshe i udobnee, predostaviv vam bolee polnyy kontrol nad tem, chto vy delaete. My nazvali ee given-when, no eta instruktsiya budet dostupna, tolko esli vy yavno poprosite ob etom. Lyubaya iz sleduyushchikh direktiv vklyuchaet dostup k etoy novoy vozmozhnosti: use v5.10; use feature qw(switch); use feature qw(:5.10); a vklyuchiv ee, vy poluchaete zaryazhennyy operator switch: given ($item) { when (/a/) { say "Matched an a" } when (/bee/) { say "Matched a bee" } } V glave 4 vy poznakomites poblizhe s etoy i s drugimi novymi osobennostyami, tak kak tam ikh obsuzhdenie bolee umestno. Dazhe pri tom, chto podderzhka standarta YUnikod (Unicode) sushchestvuet v Perl nachinaya s versii v5.6, ona byla znachitelno uluchshena v poslednikh versiyakh. V chastnosti, eto kasaetsya bolee polnoy, chem v drugikh yazykakh programmirovaniya na dannyy moment, podderzhki YUnikoda v regulyarnykh vyrazheniyakh. Blagodarya postoyannomu uluchsheniyu podderzhki etogo standarta Perl inoy raz ispolzuetsya dazhe dlya ispytaniy budushchikh narabotok Konsortsiuma YUnikoda. V predydushchem izdanii etoy knigi ves material, posvyashchennyy YUnikodu, umestilsya v edinstvennoy glave, a v etom izdanii obsuzhdenie etoy temy vstrechaetsya vezde, gde eto umestno. Stali eshche luchshe regulyarnye vyrazheniya odna iz osobennostey, ustoychivo assotsiiruyushchikhsya u programmistov imenno s yazykom Perl. Drugie yazyki zaimstvovali yazyk shablonov iz Perl i dali emu nazvanie Perl Compatible Regular Expressions (regulyarnye vyrazheniya, sovmestimye s Perl), no pri etom dobavili nekotorye svoi osobennosti. My, v svoyu ochered, zaimstvovali nekotorye iz etikh osobennostey, prodolzhaya traditsiyu vbirat v Perl vse samoe luchshee otovsyudu. Vy takzhe poznakomites s moshchnymi novymi funktsiyami dlya raboty s YUnikodom v shablonakh regulyarnykh vyrazheniy. Potoki vypolneniya (threads) takzhe preterpeli znachitelnye izmeneniya. Perl podderzhivaet dve modeli mnogopotochnogo vypolneniya: odnu my nazvali 5005threads (po nomeru versii, v kotoroy ona byla dobavlena), a drugaya potoki interpretatora. Nachinaya s versii v5.10 podderzhivayutsya tolko potoki interpretatora. Odnako po razlichnym prichinam my reshili ne vklyuchat obsuzhdenie etoy temy v knigu, a bolshe vnimaniya udelit drugim osobennostyam. Esli u vas poyavitsya zhelanie izuchit potoki vypolneniya, obratites k stranitse perlthrtut spravochnogo rukovodstva , kotoraya soderzhit prakticheski vse, chto my mogli by pomestit v glavu, opisyvayushchuyu potoki vypolneniya. Vozmozhno, v budushchem my dobavim etu glavu v kachestve besplatnogo prilozheniya. S techeniem vremeni odni osobennosti poyavlyalis, drugie ischezali. Nekotorye eksperimentalnye osobennosti okazyvalis neudachnymi, i my zamenyali ikh drugimi eksperimentalnymi osobennostyami. Tak byli ubrany i zabyty psevdokheshi . Esli vy ne znaete, chto eto takoe, ne perezhivayte ob etom i ne ishchite ikh v etom izdanii. I eshche: s momenta poslednego obnovleniya etoy knigi proizoshla krupnaya revolyutsiya (ili dve) v praktike programmirovaniya na Perl, kak i v kulture testirovaniya. Arkhiv CPAN (Comprehensive Perl Archive Network obshirnyy setevoy arkhiv resursov dlya Perl) prodolzhaet svoy eksponentsialnyy rost, chto delaet ego uboynoy osobennostyu Perl. KHotya eta kniga i ne ob arkhive CPAN, my vse zhe budem rasskazyvat o nekotorykh modulyakh iz nego, kogda eto potrebuetsya. Ne pytaytes realizovat vse na golom Perl, bez ispolzovaniya dopolnitelnykh moduley. My isklyuchili iz etogo izdaniya dve glavy: spisok moduley standartnoy biblioteki i spisok diagnosticheskikh soobshcheniy (glavy 32 i 33 v predydushchem izdanii). Obe oni ustareyut eshche do togo, kak eta kniga popadet na vashu knizhnuyu polku. My rasskazhem vam, kak samostoyatelno poluchit etot spisok. CHto kasaetsya diagnosticheskikh soobshcheniy, ikh mozhno nayti na stranitse perldiag spravochnogo rukovodstva ili vklyuchit vyvod podrobnykh preduprezhdeniy pragmoy diagnostics. CHast 1 Obshchiy obzor Nachat vsegda trudnee vsego. V etoy chasti bazovye idei Perl izlagayutsya v neformalnom vide ustroytes poudobnee v vashem lyubimom kresle. Ne pretenduya na rol polnogo uchebnogo rukovodstva, eta chast predlagaet skorostnoe vvedenie v Perl, chto ustroit ne vsyakogo chitatelya. V razdele Pechatnaya dokumentatsiya (nizhe) poishchite knigi, kotorye luchshe sochetayutsya s vashim stilem ucheby. CHast 2 Anatomiya Perl V etoy chasti provoditsya glubokoe i nichem ne ogranichennoe obsuzhdenie vnutrennego ustroystva yazyka na vsekh urovnyakh abstraktsii ot tipov dannykh, peremennykh i regulyarnykh vyrazheniy do podprogramm, moduley i obektov. CHitatel poluchit khoroshee predstavlenie o tom, kak rabotaet yazyk, a takzhe neskolko sovetov po pravilnomu proektirovaniyu programm. (A tekh, kto nikogda ne ispolzoval yazyk s poiskom po shablonu, zhdet osoboe udovolstvie.) CHast 3 Perl kak tekhnologiya Mnogoe mozhno delat s pomoshchyu odnogo tolko Perl, no v etoy chasti vy izuchite volshebstvo bolee vysokogo urovnya. Uznaete o tom, kak zastavit Perl proyti cherez vse prepyatstviya, kotorye postavit pered nim vash kompyuter, ot obrabotki YUnikoda, vzaimodeystviya protsessov i mnogopotochnosti do kompilirovaniya, vyzova, otladki i profilirovaniya, a takzhe sozdaniya sobstvennykh vneshnikh rasshireniy na C ili C++ ili interfeysov k imeyushchimsya API. Perl budet schastliv pobesedovat s lyubym interfeysom na vashem kompyutere, da, pozhaluy, i lyubom drugom kompyutere v Internete, esli pozvolyat pogodnye usloviya. CHast 4 Perl kak kultura Kazhdomu yasno, chto u kultury dolzhen byt svoy yazyk, no soobshchestvu Perl vsegda bylo yasno, chto u yazyka dolzhna byt kultura. V etoy chasti my rassmatrivaem programmirovanie na Perl kak chelovecheskuyu deyatelnost, yavlyayushchuyusya chastyu realnogo mira lyudey. My takzhe daem mnogo sovetov otnositelno togo, kak zanimatsya samosovershenstvovaniem i kak sdelat, chtoby vashi programmy prinosili bolshe polzy lyudyam. CHast 5 Spravochnyy material Zdes sobrany glavy, v kotorykh chitatel smozhet nayti chto-libo v alfavitnom poryadke ot spetsialnykh peremennykh i funktsiy do standartnykh moduley i pragm. Glossariy budet osobenno polezen tem, kto ne znakom s zhargonom vychislitelnoy tekhniki. Naprimer, te, kto ne znaet, chto takoe pragma, mogut pryamo seychas posmotret znachenie etogo slova. (A tem, kto ne znaet znachenie slova takoe, my ne mozhem pomoch nichem.) Standartnyy distributiv Ofitsialnaya politika Perl, kak otmechaetsya v stranitse perlpolicy spravochnogo rukovodstva , zaklyuchaetsya v podderzhke dvukh poslednikh ofitsialnykh versiy. Poskolku na moment napisaniya etikh strok tekushchey byla versiya v5.14, eto oznachaet, chto ofitsialno podderzhivayutsya obe versii, v5.12 i v5.14. Kogda budet vypushchena versiya v5.16, ofitsialnaya podderzhka versii v5.12 prekratitsya. V nastoyashchee vremya bolshinstvo proizvoditeley operatsionnykh sistem vklyuchayut Perl v kachestve standartnoy sostavlyayushchey svoey sistemy, khotya ikh tsikl vypuska novykh versiy mozhet ne sovpadat s tsiklom vypuska novykh versiy Perl. Na moment napisaniya dannoy knigi Perl vkhodit v standartnye distributivy AIX, BeOS, BSDI, Debian, DG/UX, DYNIX/ptx, FreeBSD, IRIX, LynxOS, Mac OS X, OpenBSD, OS390, RedHat, SINIX, Slackware, Solaris, SuSE i Tru64. Nekotorye kompanii postavlyayut Perl na otdelnykh CD s besplatnym programmnym obespecheniem ili cherez gruppy obsluzhivaniya klientov. Storonnie proizvoditeli, takie kak ActiveState, predostavlyayut otkompilirovannye distributivy dlya ryada operatsionnykh sistem, v tom chisle proizvodimykh Microsoft. Dazhe esli proizvoditel vklyuchil Perl v standartnyy distributiv, v konechnom itoge, vozmozhno, ponadobitsya otkompilirovat i ustanovit Perl samostoyatelno. V rezultate vy budete znat, chto vasha versiya yavlyaetsya samoy svezhey, i smozhete sami vybrat, kuda ustanovit biblioteki i dokumentatsiyu. Takzhe mozhno budet reshit, sleduet li skompilirovat Perl s podderzhkoy dopolnitelnykh rasshireniy, takikh kak podderzhka mnogopotochnoy modeli vypolneniya, bolshie fayly ili mnozhestvo nizkourovnevykh optsiy otladki, dostup k kotorym osushchestvlyaetsya cherez klyuch komandnoy stroki -D. (Otladchik urovnya polzovatelya podderzhivaetsya vsegda.) Proshche vsego zagruzit komplekt iskhodnogo koda Perl, ukazav brauzeru domashnyuyu stranitsu na www.perl.org, gde na vidnom meste raspolagaetsya informatsiya o zagruzhaemykh faylakh, a takzhe dostupny ssylki na kompilirovannye dvoichnye moduli dlya platform, kompilyatory C dlya kotorykh zateryalis. Mozhno takzhe napravitsya pryamo v arkhiv CPAN, opisannyy v glave 19, po adresu http://www.cpan.org. Esli rabota s nim okazhetsya slishkom medlennoy (a eto mozhet sluchitsya, poskolku on ochen populyaren), sleduet nayti zerkalnyy server CPAN poblizosti ot sebya. Na stranitse http://www.cpan.org/SITES.html privoditsya spisok vsekh saytov arkhiva CPAN, otkuda vy mozhete vybrat udobnoe dlya vas zerkalo. Nekotorye zerkala dostupny po FTP, drugie po HTTP (chto mozhet imet znachenie dlya tekh, kto vykhodit v Internet iz korporativnoy seti, zashchishchennoy brandmauerom). Multipleksor http://www.cpan.org popytaetsya prinyat reshenie avtomaticheski. Odnako pri zhelanii vy legko smozhete izmenit etot vybor. Poluchiv iskhodnyy kod i raspakovav ego v katalog, sleduet prochest fayly README i INSTALL, chtoby uznat, kak vypolnit sborku Perl. V kataloge mozhet takzhe imetsya fayl INSTALL.platform, gde platform predstavlyaet platformu vashey operatsionnoy sistemy. Esli dannaya platforma yavlyaetsya raznovidnostyu UNIX, to komandy, neobkhodimye dlya polucheniya, konfigurirovaniya, sborki i ustanovki Perl, mogut byt primerno sleduyushchie. Vo-pervykh, neobkhodimo vybrat komandu, s pomoshchyu kotoroy budet poluchen iskhodnyy kod. Zagruzit paket mozhno s pomoshchyu brauzera ili instrumenta komandnoy stroki: % wget http://www.cpan.org/src/5.0/maint.tar.gz Teper nuzhno raspakovat, skonfigurirovat, sobrat i ustanovit: % tar zxf latest.tar.gz # ili snachala gunzip, a zatem tar xf. % cd perl-5.14.2 # ili 5.* dlya drugikh versiy. % sh Configure -des # prinimaet otvety po umolchaniyu. % make test && make install # obychno trebuet privilegiy superpolzovatelya Dlya vashey platformy mogut imetsya uzhe gotovye pakety, ne trebuyushchie vypolneniya vsekh etikh operatsiy (a takzhe vklyuchayushchie ispravleniya i rasshireniya dlya vashey platformy). Krome togo, mnogie platformy uzhe vklyuchayut predustanovlennyy Perl, tak chto opisannye deystviya mogut okazatsya nenuzhnymi. Esli Perl uzhe ustanovlen, no vam khochetsya ustanovit druguyu versiyu, mozhno izbezhat lishney raboty, vospolzovavshis instrumentom perlbrew. On avtomatiziruet vse opisannye deystviya i vypolnyaet ustanovku v katalog, kuda vy imeete pravo ustanavlivat fayly, esli ne obladaete privilegiyami administratora. Etot instrument dostupen v CPAN pod nazvaniem App::perlbrew, no vy mozhete ustanovit ego, vypolniv sleduyushchie deystviya, kak opisyvaetsya v dokumentatsii: % curl L http://xrl.us/perlbrewinstall | bash Posle ustanovki prosto pozvolte etomu instrumentu vypolnit vsyu rabotu za vas: % ~/perl5/perlbrew/bin/perlbrew install perl5.14.2 Odnako etim vozmozhnosti instrumenta perlbrew ne ogranichivayutsya, poetomu za dopolnitelnoy informatsiey obrashchaytes k dokumentatsii. Sushchestvuyut takzhe rasshirennye versii standartnogo distributiva Perl. Kompaniya ActiveState predlagaet ActivePerl (http://www.activestate.com/activeperl/downloads) besplatnye versii dlya Windows, Mac OS X i Linux i platnye dlya Solaris, HP-UX i AIX. Strawberry Perl (http://strawberryperl.org/) versiya dlya Windows, vklyuchayushchaya razlichnye instrumenty, neobkhodimye dlya kompilyatsii i ustanovki storonnikh moduley Perl iz CPAN. Citrus Perl (http://www.citrusperl.com/) distributiv dlya Windows, Mac OS X i Linux, vklyuchayushchiy instrumentariy wxPerl dlya sozdaniya graficheskikh interfeysov. On prednaznachen dlya tekh, kto zhelaet sozdavat na yazyke Perl programmy s graficheskim interfeysom. A v rasprostranenii etikh prilozheniy vam pomozhet drugoy instrument, Cava Packager (http://www.cava.co.uk/), takzhe vkhodyashchiy v sostav etogo distributiva. Elektronnaya dokumentatsiya Obshirnaya elektronnaya dokumentatsiya po Perl vkhodit v sostav ego standartnogo distributiva. (O pechatnoy dokumentatsii govoritsya v sleduyushchem razdele.) Dopolnitelnaya dokumentatsiya poyavlyaetsya, kak tolko ustanavlivaetsya novyy modul iz CPAN. Upominaya v etoy knige stranitsy rukovodstva Perl, my imeem v vidu komplekt elektronnykh stranits rukovodstva po Perl, kotoryy nakhoditsya na vashem kompyutere. Pod stranitsey elektronnogo rukovodstva (manpage) budem ponimat prosto fayl s dokumentatsiey, dlya chteniya kotorogo ne obyazatelno imet UNIX-programmu man. Stranitsy rukovodstva Perl mogut byt ustanovleny dazhe kak stranitsy HTML, osobenno v sistemakh, otlichnykh ot UNIX. Elektronnye stranitsy rukovodstva po Perl razdeleny na neskolko sektsiy, poetomu mozhno legko nayti nuzhnoe, ne prodirayas cherez sotni stranits teksta. Poskolku stranitsa verkhnego urovnya nazyvaetsya prosto perl, to v UNIX komanda man perl dolzhna privesti imenno na nee. Eta stranitsa, v svoyu ochered, oboznachaet stranitsy, posvyashchennye konkretnym temam. Naprimer, man perlre vyvedet stranitsu rukovodstva po regulyarnym vyrazheniyam Perl. Komanda perldoc chasto rabotaet v tekh sistemakh, v kotorykh ne rabotaet komanda man. V vashem distributive mogut takzhe soderzhatsya stranitsy rukovodstva po Perl v formate HTML ili rodnom dlya sistemy formate podskazki. Utochnite etot vopros u svoego sistemnogo administratora esli, konechno, sami ne yavlyaetes im.Otzyvy chitateleyLuchshaya kniga iz kogda-libo vykhodivshikh!, 25 noyabrya 2012 Nakonets-to ya priobrel bolshe uverennosti pri rabote s Perl. i vse blagodarya etoy knige! Ochen khorosho napisana, i po neponyatnym prichinam eto izdanie nravitsya mne namnogo bolshe, chem predydushchee. Samo soboy, ono posvyashcheno Perl 5.14, togda kak prezhnie izdaniya rasskazyvayut ob ochen starykh versiyakh yazyka.V lyubom sluchae, esli vy nachinayushchiy, esli vy sovershenstvuetes ili zhe vam prosto nuzhno osvezhit svoi znaniya, kupite etu knigu. Ne pozhaleete!Dzhek Deniels (Jack Daniels) (Klispell, Montana, SSHA)Ischerpyvayushchiy traktat o Perl, 16 noyabrya 2012 Esli vy ishchete spravochnik po yazyku Perl, poisk zavershen. Eta kniga i est tot samyy spravochnik. YA polzovalsya predydushchim izdaniem bolee desyati let i nadeyus ispolzovat dannoe izdanie eshche mnogo let. Ono dopolneno opisaniem mnozhestva novykh osobennostey i uluchsheniy, dobavlennykh v Perl za poslednee desyatiletie. Fraza na oblozhke knigi - "Neprevzoydennaya moshch v obrabotke tekstov i sozdanii stsenariev" - ne daet sovershenno nikakogo predstavleniya ob istinnykh vozmozhnostyakh Perl. KH. KHemken (H. Hemken) (San-KHose, Kaliforniya, SSHA)Vam nuzhna eta kniga, esli ispolzuete Perl, 7 aprelya 2012 Srazu skazhu, chto dolgoe vremya ya izbegal polzovatsya yazykom Perl. Ego sintaksis vsegda navodil na menya uzhas, i ya dazhe predstavit ne mog, kak mozhet vozniknut zhelanie polzovatsya im. No nastal moment, kogda moe mnenie perestalo imet ves. Mne prishlos zanyatsya izucheniem Perl i ispolzovat ego v rabochikh proektakh. Drug porekomendoval mne knigu "Programmirovanie na Perl". Na moyu udachu kak raz vyshlo novoe, chetvertoe izdanie.Skazhu korotko: kniga velikolepna. Vse, ot obshchego obzora do anatomii Perl, illyustriruetsya ponyatnymi primerami. Na moy vzglyad, kniga presleduet dve osnovnye tseli: vo-pervykh, poznakomit chitatelya s yazykom Perl i ego ekosistemoy i, vo-vtorykh, stat dlya nego spravochnikom. Esli vy sami pristupili k izucheniyu Perl ili vynuzhdeny byli sdelat eto, kak ya, vy ne oshibetes, priobretya etu knigu. Ona pozvolit vam sekonomit massu vremeni na poiske nuzhnoy informatsii v Internete.Adrian Pomilo (Adrian Pomilio) "www.uiandtherest.com" (Roli, Severnaya Karolina, SSHA) Otlichnoe obnovlenie, 6 marta 2012 YA nachinal izuchenie Perl s tretego izdaniya 12 let nazad. Kogda vyshlo chetvertoe izdanie, ya pogruzilsya v chtenie na neskolko chasov. Eta kniga pochti na dyuym tolshche prezhnego izdaniya. Mne ochen ponravilos, chto avtory vnedrili opisanie novykh vozmozhnostey Perl, ne povrediv udovolstviyu ot chteniya "Verblyuda". Eto kak vnov vstretitsya so starymi druzyami.Esli vy tolko nachinaete izuchat Perl, ya predlagayu nachat s etoy knigi, chtoby nayti otvet na vopros "Zachem?", a potom obratitsya k knigam dlya nachinayushchikh, otvechayushchikh na vopros "Kak?". Esli zhe vy veteran, skazhu odno: eta kniga stoit svoikh 30 baksov.Dzh. Sprol (J. Sproul)

Coming soon...

Technical characteristics of the product may differ.
Check the information at checkout
the operator of the contact center.

Reviews

  • Comments
Loading comments...