Учебник Perl Maven научит вас основам программирования на Perl. Вы сможете писать простые скрипты, анализировать лог-файлы, считывать и записывать CSV-файлы. Это лишь некоторые типичные задачи, которые вы освоите.
Вы научитесь использовать CPAN и некоторые конкретные модули CPAN.
Так вы заложите хорошую основу знаний, которые позже сможете развивать.
Бесплатная онлайн-версия учебника создается сейчас. Многие части уже готовы. Новые материалы публикуются и переводятся каждые несколько дней. Последний перевод был опубликован 10 июля 2013 г. Если вы хотите получать уведомления, когда публикуются новые материалы, пожалуйста подпишитесь на рассылку.
Также можно купить версию англоязычных материалов в виде электронной книги. Вдобавок к бесплатным статьям, в этой версии есть другие материалы из соответствующих курсов, содержащие множество упражнений и решений.
Еще есть видео-курс, состоящий из более 210 скринкастов общей продолжительностью более 5 часов. В дополнение к представлению материала, он также включает объяснения решений всех упражнений, а также исходный код всех примеров и упражнений.
Бесплатный онлайн Учебник для новичков - Perl Maven Tutorial
С помощью этого учебника вы научитесь использовать язык программирования Perl 5 так, чтобы выполнить свою задачу.
Вы узнаете как об основных свойствах языка, так и о расширениях (библиотеках), или, как их называют Perl-программисты, модулях. Мы рассмотрим как стандартные модули, входящие в установочный пакет Perl, так и модули сторонних разработчиков, размещаемые на CPAN.
Мы постараемся по возможности обучать решениям, ориентированным на конкретные задачи. Мы будем придумывать жизненные задачи и учиться использовать инструменты, необходимые для их решения. Также, когда возможно, мы постараемся показывать вам некоторые упражнения, на которых можно потренироваться применять выученные уроки.
Введение
- [Установка Perl. Hello World. "Ремни безопасности" (use strict, use warnings)](/ustanovka-i-nachalo-raboty-s-perl)
- [Редакторы, IDE, среды разработки для Perl](/redaktor-dlya-perl)
- [Perl в командной строке](/perl-v-komandnoy-stroke)
- [Основная документация Perl и документация на модули CPAN](/documentacia-na-perl-i-cpan-moduli)
- [POD - Простая Старая Документация](/pod-ili-prostaya-staraya-dokumentatsia)
- [Отладка Perl-скриптов](/otladka-perl-scriptov)
Скалярные переменные
- Типичные предупреждения и сообщения об ошибках
* [Global symbol requires explicit package name](/global-symbol-requires-explicit-package-name) - [Автоматический перевод строк в числа](/avtomaticheskiy-perevod-znacheniy-ili-privedenie-tipov-v-perl)
- Условные выражения: if
- [Булевы (true и false) значения в Perl](/bulevy-znacheniya-v-perl)
- Числовые и строковые операторы
- [undef, начальное значение и функция "defined"](/undef-i-defined-v-perl)
- [Строки в Perl: кавычки, интерполяция и экранирование](/kavychki-interpolyaciya-i-ekranirovanie-strok-v-perl)
- [Here-документы](/here-documenty)
- [Скалярные переменные](/scalarnye-peremennye)
- [Сравнение скаляров](/sravnenie-skalarov-v-perl)
- [Строковые функции: length, lc, uc, index, substr](/strokovye-funkcii-length-lc-uc-index-substr)
- [Игра в "угадай число" (rand, int)](/igra-v-ugaday-chislo)
- [Цикл while в Perl](/tsikl-while)
- [Область видимости переменных в Perl](/oblast-vidimosti-v-perl)
Файлы
- [Выход (exit)](/kak-vyiti-iz-perl-scripta)
- [Стандартный канал вывода, стандартный канал ошибок и перенаправление в командной строке](/stdout-stderr-i-perenapravlenie)
- warn и die
- [Запись в файл](/zapis-v-fayl-na-perl)
- [Дописывание в файл](/dopisyvanie-v-fayl)
- [Открытие и чтение из файла на Perl](/otkrytie-i-chtenie-faylov)
- [Не открывайте файлы по-старому](/stariy-sposob-otkryvaniya-faylov)
- Двоичный режим, работа с Юникодом
- Чтение из двоичного файла, read, eof
- tell, seek
- truncate
Списки и массивы
- цикл foreach в Perl
- [Цикл for в Perl](/tsikl-for-v-perl)
- Списки в Perl
- Использование модулей
- [Массивы в Perl](/massivy-v-perl)
- Обработка параметров командной строки @ARGV, Getopt::Long
- Как прочесть и обработать CSV-файл? (split, Text::CSV_XS) ([How to read and process a CSV file? (split, Text::CSV_XS)](https://perlmaven.com/how-to-read-a-csv-file-using-perl))
- join ([join](https://perlmaven.com/join))
- Год 19100 (time, localtime, gmtime) и введение контекста ([The year of 19100 (time, localtime, gmtime)](https://perlmaven.com/the-year-19100) and introducing context)
- Чувствительность к контексту Perl ([Context sensitivity in Perl](https://perlmaven.com/scalar-and-list-context-in-perl))
- Сортировка массивов в Perl ([Sorting arrays in Perl](https://perlmaven.com/sorting-arrays-in-perl))
- Уникальные значения в массиве в Perl ([Unique values in an array in Perl](https://perlmaven.com/unique-values-in-an-array-in-perl))
- Управление массивами в Perl: shift, unshift, push, pop ([Manipulating Perl arrays: shift, unshift, push, pop](https://perlmaven.com/manipulating-perl-arrays))
- Стек и очередь (Stack and [queue](https://perlmaven.com/using-a-queue-in-perl))
- reverse
- троичный оператор
- Управление циклами: next и last
- min, max, sum с помощью List::Util
Подпрограммы
- Подпрограммы и функции в Perl ([Subroutines and Functions in Perl](https://perlmaven.com/subroutines-and-functions-in-perl))
- Передача и получение параметров в подпрограммах
- Переменное количество параметров
- Возвращение списка
- Рекурсивные подпрограммы
Хэши, массивы
- Хэши в Perl (словарь, ассоциативный массив, справочная таблица) ([Perl Hashes (dictionary, associative array, look-up table)](https://perlmaven.com/perl-hashes))
- exists, delete для элементов хэша
Регулярные выражения
- Регулярные выражения в Perl
- Regex: Классы символов
- Regex: Кванторы
- Regex: "Жадное" и "нежадное" сравнение
- Regex: Группировка и захватывание
- Regex: Якоря
- Настройки и модификаторы регулярных выражений
- Подстановка (поиск и замена)
- trim - убираем пробелы в начале и в конце ([trim - remove leading and trailing spaces](https://perlmaven.com/trim))
Perl и функции командной строки
- -X операторы в Perl
- Перенаправление потоков в Perl
- Запуск внешних программ [с помощью system](/zapusk-vneshnih-programm-iz-perl)
- Unix-команды: rm, mv, chmod, chown, cd, mkdir, rmdir, ln, ls, cp
- Как удалить, скопировать или переименовать файл с помощью Perl ([How to remove, copy or rename a file with Perl](https://perlmaven.com/how-to-remove-copy-or-rename-a-file-with-perl))
- Команды Windows/DOS: del, ren, dir
- Файловые подстановки (Wildcard'ы)
- Указатели на директории
- Обход дерева директории (find)
CPAN
- Скачивание и установка Perl (Strawberry Perl или ручная сборка) ([Download and install Perl (Strawberry Perl or manual compilation)](https://perlmaven.com/download-and-install-perl))
- Скачивание и установка Perl с помощью Perlbrew
- Поиск и оценка модулей CPAN
- Скачивание и установка Perl-модулей со CPAN'а
- Как поменять @INC, чтобы находить Perl-модули в нестандартных местах? ([How to change @INC to find Perl modules in non-standard locations?](https://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations))
- Как поменять @INC на относительный адрес
- local::lib
Немного примеров использования Perl
- Как заменить строку файла с помощью Perl? (slurp) ([How to replace a string in a file with Perl? (slurp)](https://perlmaven.com/how-to-replace-a-string-in-a-file-with-perl))
- Чтение из Excel-файлов с помощью Perl
- [Creating Excel files using Perl](https://perlmaven.com/create-an-excel-file-with-perl) ([Платная подписка (только по-английски)](https://perlmaven.com/pro))
- Отправка электронной почты с помощью Perl
- CGI-скрипты на Perl
- Web-приложения с помощью Perl: PSGI
- Разбор XML-файлов
- Чтение и запись JSON-файлов
- Работа с базами данных на Perl (DBI, DBD::SQLite, MySQL, PostgreSQL, ODBC) ([Database access using Perl (DBI, DBD::SQLite, MySQL, PostgreSQL, ODBC)](https://perlmaven.com/simple-database-access-using-perl-dbi-and-sql))
- Работа с LDAP на Perl
Другое
- Splice - режем массивы вдоль и поперек ([Splice to slice and dice arrays in Perl](https://perlmaven.com/splice-to-slice-and-dice-arrays-in-perl))
- Как создать Perl-модуль для повторного использования кода ([How to create a Perl Module for code reuse](https://perlmaven.com/how-to-create-a-perl-module-for-code-reuse))
- Объектно-ориентированный Perl с помощью Mooses ([Object Oriented Perl using Mooses](https://perlmaven.com/object-oriented-perl-using-moose))
- Типы свойств в классах Perl при использовании Moose ([Attribute types in Perl classes when using Moose](https://perlmaven.com/attribute-types-in-perl-classes-when-using-moose))
- Многомерные массивы ([Multi dimensional arrays](https://perlmaven.com/multi-dimensional-arrays-in-perl))
Объектно-ориентированный Perl с помощью Moo
- ООП с помощью Moo - скринкаст и текстовое объяснение основных принципов Moo, создание класса с единственным свойством, которое может быть либо "только для чтения" (неизменяемое), либо "для чтения и записи" (изменяемое). Создание экземпляра (объекта). [OOP with Moo](https://perlmaven.com/oop-with-moo) a screencast and text explaining the basics of Moo, creating a class with a single attrubue that can be either read-only (immutable) or read-write (mutable) attribute. Creating and instance (object).
- [Платная подписка (только по-английски)](https://perlmaven.com/pro):
- [Type checking with Moo](https://perlmaven.com/type-checking-with-moo). While Moo does not have a type-system it allows you to set-up type checking in the setters of the attributes.
- [required attributes](https://perlmaven.com/moo-and-required-attributes)
- [Moo attributes with default values](https://perlmaven.com/moo-attributes-with-default-values)
- [Moo attribute predicate and clearer](https://perlmaven.com/moo-attribute-predicate-and-clearer)
For the original, visit the Perl Tutorial in English