Подробности
Да научим Perl, известна още като „книгата с Ламата", е четивото, използвано от повечето програмисти в началото на тяхната Perl кариера. Пред вас стои петото издание на това популярно ръководство за Perl, публикувано за първи път през 1993г. В него ще откриете последните промени, въведени в езика, включително Perl 5.10.
Тази книга отразява съвместния опит на своите автори, които преподават Perl в Stonehenge Consulting от 1991 година. Натрупаните през годините наблюдения и опит в класната стая са помогнали за установяване на динамиката и обхвата на книгата, а упражненията в края на всяка глава ще ви помогнат да практикувате концепциите, въведени в текста. Темите в петото издание включват:
• Типове данни и променливи в Perl
• Подпрограми
• Операции с файлове
• Регулярни изрази
• Манипулация на низове
• Списъци и сортиране
• Управление на процеси
• „Умно" съгласуване
• Допълнителни модули
Perl е езикът на хората, които желаят да свършат работата си. Първоначално насочен към системни администратори с цел опростяване на тежката обработка на текст, сега Perl е цялостен програмен език, подходящ за изпълнение на почти всяка задача върху почти всяка платформа – от малки промени, въведени през командния ред, до уеб приложения, биоинформатика, финанси и още много области. Другите книги може би ще ви научат как да програмирате на Perl, но Да научим Perl ще ви превърне в Perl програмист.
Предговор..................................................................................................xi
Въведение...................................................................................................1
Въпроси и отговори
Какво означава абревиатурата „Perl”?
Откъде мога да се сдобия с Perl?
Как да съставя програма на Perl?
Кратка разходка из Perl
Упражнения
Скаларни данни...........................................................................................19
Числа
Низове
Вградените предупредителни съобщения на Perl
Скаларни променливи
Изход с print
Управляващата структура if
Прихващане на потребителски входни данни
Операторът chomp
Управляващата структура while
Стойността undef
Функцията defined
Упражнения
Списъци и масиви........................................................................................41
Получаване на достъп до елементите на масив
Специални индекси на масив
Списъчни литерали
Присвояване на списък
Интерполация на масиви в низове
Управляващата структура foreach
Скаларен и списъчен контекст
в списъчен контекст
Упражнения
Подпрограми...................................................................................................59
Дефиниране на подпрограма
Извикване на подпрограма
Върнати стойности
Аргументи
Частни променливи в подпрограма
Списък с произволен брой параметри
Бележки относно лексикалните (my) променливи
Прагмата use strict
Операторът return
Нескаларни върнати стойности
Постоянни частни променливи
Упражнения
Вход и изход....................................................................................................75
Вход от стандартния вход
Вход от оператора ромб
Извикващите аргументи
Изход към стандартния изход
Форматиран изход с printf
Файлови манипулатори
Отваряне на файлов манипулатор
Фатални грешки с die
Употреба на файлови манипулатори
Повторно отваряне на стандартен файлов манипулатор
Изход със say
Упражнения
Хешове.............................................................................................................97
Какво е хешът?
Достъп до елементите на хеш
Функции за хешове
Типичната употреба на хеш
Хешът %ENV
Упражнения
В света на регулярните изрази..................................................................111
Какво представляват регулярните изрази?
Използване на елементарни шаблони
Символни класове
Упражнения
Съгласуване с регулярни изрази..............................................................121
Съгласуване с m//
Допълнителни модификатори
Котви
Обвързващият оператор =~
Интерполация в шаблон
Променливи на съгласуването
Обобщаващи квантори
Приоритет
Програма за тестване на шаблони
Упражнения
Обработка на текст посредством регулярни изрази...........................139
Заместване със s///
Операторът split
Функцията join
m// в списъчен контекст
По-мощни регулярни изрази
Упражнения
Още управляващи структури.......................................................................153
Управляващата структура unless
Управляващата структура until
Модификатори на изрази
Управляващата структура „гол” блок
Клаузата elsif
Автоматично увеличаване и намаляване с единица
Управляващата структура for
Управление на цикли
Тернарният оператор ?:
Логически оператори
Упражнения
Perl модули....................................................................................................173
Откриване на модули
Инсталиране на модули
Използване на обикновени модули
Упражнения
Файлови тестове..........................................................................................183
Оператори за файлови тестове
Функциите stat и lstat
Функцията localtime
Побитови оператори
Упражнения
Операции с директории..............................................................................195
Придвижване през дървото на директориите
Работа с глобални символи
Алтернативен синтаксис за глобалните символи
Манипулатори на директории
Рекурсивен преглед на директории
Управление на файлове и директории
Премахване на файлове
Преименуване на файлове
Връзки и файлове
Създаване и премахване на директории
Промяна на разрешенията
Промяна на притежателя
Промяна на времевите параметри
Упражнения
Низове и сортиране.....................................................................................213
Откриване на подниз с помоща на index
Обработка на подниз със substr
Форматиране на данни с sprintf
Усъвършествано сортиране
Упражнения 2
„Умно” съгласуване и given-when.............................................................225
Операторът за „умно” съгласуване
Приоритет при „умното” съгласуване
Конструкцията given
when с множество елементи
Упражнения
Управление на процеси...............................................................................237
Функцията system
Функцията exec
Променливи на средата
Употреба на обратни кавички за прихващане на изходни данни
Процеси като файлови манипулатори
Работа с fork
Изпращане и получаване на сигнали
Упражнения
Някои усъвършенствани техники в Perl..................................................253
Прихващане на грешки с eval
Избиране на елементи от списък с помощта на grep
Трансформиране на елементи от списък посредством map
Хешови ключове без кавички
Отрязъци
Упражнение
А. Отговори на упражненията.....................................................................265
Б. Отвъд книгата с Ламата............................................................................299
Индекс................................................................................................................319
Въведение...................................................................................................1
Въпроси и отговори
Какво означава абревиатурата „Perl”?
Откъде мога да се сдобия с Perl?
Как да съставя програма на Perl?
Кратка разходка из Perl
Упражнения
Скаларни данни...........................................................................................19
Числа
Низове
Вградените предупредителни съобщения на Perl
Скаларни променливи
Изход с print
Управляващата структура if
Прихващане на потребителски входни данни
Операторът chomp
Управляващата структура while
Стойността undef
Функцията defined
Упражнения
Списъци и масиви........................................................................................41
Получаване на достъп до елементите на масив
Специални индекси на масив
Списъчни литерали
Присвояване на списък
Интерполация на масиви в низове
Управляващата структура foreach
Скаларен и списъчен контекст
Упражнения
Подпрограми...................................................................................................59
Дефиниране на подпрограма
Извикване на подпрограма
Върнати стойности
Аргументи
Частни променливи в подпрограма
Списък с произволен брой параметри
Бележки относно лексикалните (my) променливи
Прагмата use strict
Операторът return
Нескаларни върнати стойности
Постоянни частни променливи
Упражнения
Вход и изход....................................................................................................75
Вход от стандартния вход
Вход от оператора ромб
Извикващите аргументи
Изход към стандартния изход
Форматиран изход с printf
Файлови манипулатори
Отваряне на файлов манипулатор
Фатални грешки с die
Употреба на файлови манипулатори
Повторно отваряне на стандартен файлов манипулатор
Изход със say
Упражнения
Хешове.............................................................................................................97
Какво е хешът?
Достъп до елементите на хеш
Функции за хешове
Типичната употреба на хеш
Хешът %ENV
Упражнения
В света на регулярните изрази..................................................................111
Какво представляват регулярните изрази?
Използване на елементарни шаблони
Символни класове
Упражнения
Съгласуване с регулярни изрази..............................................................121
Съгласуване с m//
Допълнителни модификатори
Котви
Обвързващият оператор =~
Интерполация в шаблон
Променливи на съгласуването
Обобщаващи квантори
Приоритет
Програма за тестване на шаблони
Упражнения
Обработка на текст посредством регулярни изрази...........................139
Заместване със s///
Операторът split
Функцията join
m// в списъчен контекст
По-мощни регулярни изрази
Упражнения
Още управляващи структури.......................................................................153
Управляващата структура unless
Управляващата структура until
Модификатори на изрази
Управляващата структура „гол” блок
Клаузата elsif
Автоматично увеличаване и намаляване с единица
Управляващата структура for
Управление на цикли
Тернарният оператор ?:
Логически оператори
Упражнения
Perl модули....................................................................................................173
Откриване на модули
Инсталиране на модули
Използване на обикновени модули
Упражнения
Файлови тестове..........................................................................................183
Оператори за файлови тестове
Функциите stat и lstat
Функцията localtime
Побитови оператори
Упражнения
Операции с директории..............................................................................195
Придвижване през дървото на директориите
Работа с глобални символи
Алтернативен синтаксис за глобалните символи
Манипулатори на директории
Рекурсивен преглед на директории
Управление на файлове и директории
Премахване на файлове
Преименуване на файлове
Връзки и файлове
Създаване и премахване на директории
Промяна на разрешенията
Промяна на притежателя
Промяна на времевите параметри
Упражнения
Низове и сортиране.....................................................................................213
Откриване на подниз с помоща на index
Обработка на подниз със substr
Форматиране на данни с sprintf
Усъвършествано сортиране
Упражнения 2
„Умно” съгласуване и given-when.............................................................225
Операторът за „умно” съгласуване
Приоритет при „умното” съгласуване
Конструкцията given
when с множество елементи
Упражнения
Управление на процеси...............................................................................237
Функцията system
Функцията exec
Променливи на средата
Употреба на обратни кавички за прихващане на изходни данни
Процеси като файлови манипулатори
Работа с fork
Изпращане и получаване на сигнали
Упражнения
Някои усъвършенствани техники в Perl..................................................253
Прихващане на грешки с eval
Избиране на елементи от списък с помощта на grep
Трансформиране на елементи от списък посредством map
Хешови ключове без кавички
Отрязъци
Упражнение
А. Отговори на упражненията.....................................................................265
Б. Отвъд книгата с Ламата............................................................................299
Индекс................................................................................................................319
Рандал Л. Шварц е ветеран в софтуерната индустрия от вече две десетилетия. Той е умел в софтуерния дизайн, системното администриране, сигурността, техническото писане и преподаването. Рандал е съавтор на набор от книги, които задължително трябва да притежавате: Програмиране с Perl, Да научим Perl, Learning Perl for Win32 Systems и Effective Perl Learning. Освен това той списва редовни рубрики в WebTechniques, PerformanceComputing, SysAdmin и Linux Magazine.
Рандал често допринася информация към новинарските групи на Perl и от началото е модератор на групата comp.lang.perl.announce. За неговия ексцентричен хумор и техническите му познания се носят легенди по целия свят (въпреки че вероятно той самият е автор на част от легендите). Желанието на Рандал да се отблагодари на Perl общността го вдъхнови да подпомогне в създаването и първаночалното финансиране на The Perl Institute. Също така той е един от съоснователите на Perl Mongers (perl.org) – световната организация в подкрепа популяризирането на Perl. От 1985г. Рандал притежава и управлява Stonehenge Consulting Services, Inc. Ако искате да се свържете с него, можете да му пишете на merlyn@stonehenge.com. Той приветства всички въпроси относно Perl и свързани с него теми.
Том Феникс работи в образователната сфера от 1982г. След повече от 13 години, изминали в анализи, експлозии, работа с интересни животни и високоволтови искри по време на престоя му в научния музей, той започва да преподава Perl в Stonehenge Consulting Services, където остава до 1996г. След това започна да пътува до множество интересни места, така че скоро може да го срещнете на събиране на Perl Mongers. Когато има свободно време, той отговаря на въпроси в Usenet групите comp.lang.perl.misc и comp.lang.perl.moderated, а също така допринася в развитието и полезността на Perl. Освен че работи с Perl, Perl хакери и свързани с Perl теми, Том отделя време на аматьорската криптография и на изучаването на Есперанто. Той живее в Портланд, Орегон.
бриан ди фой е инструктор в Stonehenge Consulting Services от 1998г, работи с Perl от годините, когато е следвал физика, и твърдоглав потребител на Mac от момента, в който се е сдобил с първия си компютър. Той основа първата Perl потребителска група – New York Perl Mongers, както и организацията с идеална цел Perl Mongers, Inc., която е помогнала на повече от 200 Perl потребители по целия свят. Той поддържа страницата perlfaq от документацията на Perl, няколко модула в CPAN, списание, посветено на Perl, както и отделни скриптове. Той издава The Perl Review – списание, посветено на Perl, и често пъти е говорител в различни конференции, измежду които Perl Conference, Perl University, MarcusEvans BioInformatics "02 и YAPC. Негови текстове за Perl са публикувани в мрежата на O"Reilly, The Perl Journal, Dr. Dobbs и The Perl Review, в use.perl.org, както и в няколко Usenet групи, посветени на Perl.
Рандал често допринася информация към новинарските групи на Perl и от началото е модератор на групата comp.lang.perl.announce. За неговия ексцентричен хумор и техническите му познания се носят легенди по целия свят (въпреки че вероятно той самият е автор на част от легендите). Желанието на Рандал да се отблагодари на Perl общността го вдъхнови да подпомогне в създаването и първаночалното финансиране на The Perl Institute. Също така той е един от съоснователите на Perl Mongers (perl.org) – световната организация в подкрепа популяризирането на Perl. От 1985г. Рандал притежава и управлява Stonehenge Consulting Services, Inc. Ако искате да се свържете с него, можете да му пишете на merlyn@stonehenge.com. Той приветства всички въпроси относно Perl и свързани с него теми.
Том Феникс работи в образователната сфера от 1982г. След повече от 13 години, изминали в анализи, експлозии, работа с интересни животни и високоволтови искри по време на престоя му в научния музей, той започва да преподава Perl в Stonehenge Consulting Services, където остава до 1996г. След това започна да пътува до множество интересни места, така че скоро може да го срещнете на събиране на Perl Mongers. Когато има свободно време, той отговаря на въпроси в Usenet групите comp.lang.perl.misc и comp.lang.perl.moderated, а също така допринася в развитието и полезността на Perl. Освен че работи с Perl, Perl хакери и свързани с Perl теми, Том отделя време на аматьорската криптография и на изучаването на Есперанто. Той живее в Портланд, Орегон.
бриан ди фой е инструктор в Stonehenge Consulting Services от 1998г, работи с Perl от годините, когато е следвал физика, и твърдоглав потребител на Mac от момента, в който се е сдобил с първия си компютър. Той основа първата Perl потребителска група – New York Perl Mongers, както и организацията с идеална цел Perl Mongers, Inc., която е помогнала на повече от 200 Perl потребители по целия свят. Той поддържа страницата perlfaq от документацията на Perl, няколко модула в CPAN, списание, посветено на Perl, както и отделни скриптове. Той издава The Perl Review – списание, посветено на Perl, и често пъти е говорител в различни конференции, измежду които Perl Conference, Perl University, MarcusEvans BioInformatics "02 и YAPC. Негови текстове за Perl са публикувани в мрежата на O"Reilly, The Perl Journal, Dr. Dobbs и The Perl Review, в use.perl.org, както и в няколко Usenet групи, посветени на Perl.