Вскоре после выхода первого издания в 1991 году книга "Программирование на Perl" стала считаться неоспоримой библией по языку Perl и продолжает оставаться основным руководством по этому весьма практичному языку.
Язык Perl начал жизнь в роли мощного средства обработки текста, но быстро превратился в универсальный язык программирования, который помогает сотням и тысячам программистов, системных администраторов и энтузиастов, таких как вы, справляться со своей работой....
Вскоре после выхода первого издания в 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)
Программное обеспечение — начиная с мобильных и облачных приложений, заканчивая видеоиграми и системами управления автономным транспортом — становится все более и более ограниченным по времени. Оно должно обеспечивать надежные результаты плавно, последовательно и практически мгновенно. Неспособность гарантировать это приведет к недовольству потребителей, а в некоторых случаях даже может создать...
Издательство:
Питер
Дата выхода: январь 2024
Имя норвежского писателя Юстейна Гордера – одно из крупнейших в современной литературе. В его книгах удивительным образом сочетаются лучшие традиции мировой классики и новизна и свежесть взгляда. «Апельсиновая девушка» – своеобразная книга в книге, ибо рассказ в ней ведут два человека. Мальчик Георг слышит голос своего отца спустя одиннадцать лет после его смерти…
Издательство:
Алетейя
Дата выхода: декабрь 2018
Кто же не любит приключений? Но представьте, что вы попадаете в них в самый первый день своей жизни! Бальбися - тряпичная куколка, она ещё лежит и сохнет на подоконнике, как вдруг ветер сбрасывает её из окна прямо на бродячего пса Пшёлвона. Ошалевший пёс относит панночку далеко от дома и даже от города. Прежде, чем найти дорогу обратно, Бальбисе предстоит оказаться в одной кошёлке с гусыней, вдохновить...
Издательство:
ТриМаг
Дата выхода: июнь 2017
Магия - особая система мышления, при которой чело обращается к неким мистическим силам, дабы влиять на события. Для этого используется некий обряд, заклинание или действо. В этой книге речь пойдет об индийской магии.
Издательство:
Велигор
Дата выхода: март 2018
Книга является первым томом к книге "Вероятностное машинное обучение. Дополнительные темы: предсказание, порождение, обнаружение, действие". Дополняя ранее изданную книгу Вероятностное машинное обучение. Введение , этот классический труд знакомит читателя с деталями самых актуальных теорий и методов машинного обучения, включая глубокие порождающие модели, графовые модели, байесовский вывод,...
Издательство:
ДМК
Дата выхода: июнь 2024
Оставить комментарий