- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Введение в Perl - Маслов Владимир Викторович
Шрифт:
Интервал:
Закладка:
packages имя_модуля;
Конец модуля это конец блока или файла. Головной модуль имеет по умолчанию имя main. На имя внутри модуля можно ссылаться добавляя '::' после имени модуля.
Например:
$main::var1 – переменная в головном модуле.
::var1 – то же самое. Имя main можно опускать.
$модуль1::var1 – переменная в модуле 'модуль1'
$модуль1::модуль2::var1 – Модуль2 содержится в модуле 1.
Только идентификаторы начинающиеся с буквы или символа '_' хранятся в пространтсве имен текущего модуля. Остальные хранятся в пространстве головного модуля main.
Кроме этого имена STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC и SIG так же хранятся в головном модуле.
Таблицы имен.Все имена модуля хранятся в ассоциативном массиве (хеше) с именем модуля к которому добавлены символы "::". Таким образом имена головного модуля хранятся в %main:: , модуля 'mod1' в %mod1:: и т.д. Выражение вида *имя указывает значение элемента хеша 'имя' это удобно для определения констант.
Например:
*pi = 3.14159;
Здесь переменная $pi – это константа пи которую уже нельзя изменить.
Конструкторы и деструкторы.Конструктор – это подпрограмма которая выполняется в момент создания объекта, а деструктор – удаления объекта. Для модуля это подпрограммы с именами BEGIN и END. При определении этих подпрограмм слово sub можно опускать.
Конструктор BEGIN выполняется сразу как только возможно т.е. как только он определен даже не завершая дальнейший разбор программы. Можно указать несколько блоков BEGIN. Они будут выполняться один за другим в порядке определения.
Деструктор END выполняется последним как только возможно т.е. при завершении работы интерпрератора. Можно указать несолько блоков END при этом они будут выполняться в обратном определению порядке.
Классы.В Перл нет специального синтаксиса для классов. Но функционально полноценными классами могут быть модули. При этом подпрограммы модуля становятся методами, а с помощью массива @ISA можно реализовать механизм наследования в классах. Более подробно классы описаны отдельно.
Создание библиотеки.Если вы хотоите создать модуль отдельным файлом и использовать как библиотеку подпрограмм, при этом вызывать подпрограммы библиотеки не указывая имени модуля, вам необходимо оформить модуль следующим образом:
package имя_модуля; # Такое же как и имя этого файла без расширения '.pm'
require Exporter; # Обязательная строка для экспорта имен
@ISA = qw(Exporter); # -//-
@EXPORT = qw(func1 func2) # Перечисляем имена функций. Внимание ! нет запятой!
@EXPORT_OK = qw( $переменная @массив ); # Указать публичные переменные, массивы и т.д. если необходимо
{ # Начало блока модуля
.....
sub func1
........
sub func2
........
1;
}
Данный файл с расширением ".pm" должен храниться в одной из библиотечных директорий Перл. Они перечислены в массиве @INC одно из них обычно "/usr/local/lib/perl/".
В головной программе вы указываете:
use имя_модуля;
и вам становятся доступны имена подпрограмм данного модуля.
Стандартные Перл библиотеки.Стандартный набор библиотек обычно поставляется с дистрибутивом Перл они разделяются на pragma библиотеки (работают как директивы компилятору) и стандартные библиотеки.
Pragma библиототеки.Данные библиотеки используют как:
use имя;
когда хотят включить действие и
no имя;
когда выключить.
В стандартный набор входят следующие pragma:
diagnostics – Включить режим расширенной диагностики.
integer – Использовать целочисленную арифметику.
less – Режим минимальной загрузки компилятора.
overload - Режим переопределения операторов.
sigtrap - Режим слежения за прерываниями.
strict - Режим ограниченного использования «опасных» операторов.
subs - Режим обязательного декларирования подпрограмм.
Стандартные библиотеки.AnyDBM_File Возможность работы с разными типами баз данных.
AutoLoader Загрузка в память функций только во время вызова.
AutoSplit Разделить модуль для автозагрузки.
Benchmark Анализ скорости исполнения программы.
Carp Предупреждения об ошибках.
Config Доступ к конфигурации Перл.
Cwd Получить имя текущей рабочей директории.
DB_File Работа с базой данных формата Berkley DB.
Devel::SelfStubber Режим отладки автозагрузки.
DynaLoader Динамическая загрузка библиотек C.
English Использовать длинные имена встроенных переменных.
Env Импортировать имена переменных окружения
Exporter Обеспечивает экспорт/импорт для модулей.
ExtUtils::LibList Определяет используемые библиотеки.
ExtUtils::MakeMaker Создает файл проекта Makefile
ExtUtils::Manifest Программы для создания и проверки файла MANIFEST
ExtUtils::Mkbootstrap Применеие файла начальной загрузки для DynaLoader.
Fcntl Определения как и в С Fcntl.h
File::Basename Синтаксический разбор спецификации файла.
File::CheckTree Быстрый проход по директориям диска.
File::Find Быстрый поиск файлов по директориям.
FileHandle Обеспечивает объектный метод доступа к указателям файлов.
File::Path Создание/удаление директорий.
Getopt::Long Расширенная обработка опций.
Getopt::Std Стандартная обработка опций.
I18N::Collate Сравнение символов локальной кодировки.
IPC::Open2 Межпроцессорный обмен по чтению и записи.
IPC::Open3 Межпроцессорный обмен по чтению, записи, и обрабоки ошибок.
Net::Ping Тест доступа к хосту.
POSIX Стандартный интерфейс по IEEE Std 1003.1
SelfLoader Загрузка функций только по вызову.
Socket Определение структур и констант как и в С socket.h
Test::Harness Стандартный тест с статистикой.
Text::Abbrev Создание таблицы сокращений по списку.
Подробное описание каждой библиотеки записано в самом файле.
CPANПрограмисты всего мира работающие с Перл создали общедоступную библиотеку модулей CPAN. Она доступна через Интернет и содержит огромное количество различных по назначению модулей.
К ним относятся документаторы, системные интерфесы, интерфейсы работы с базами данных, работа в сети, с файлами, Интернет-броузеры, системы поиска, огромное количество CGI скриптов для Web серверов и многое многое другое. Список некоторых CPAN серверов вы можете найти в приложении.
Форматы
В Перл реализован удобный метод создания форматированных отчетов. С помощью оператора format вы описываете заголовки, размеры полей, указываете положение данных на листе в удобной текстовой форме. Затем выполняете команду write(файл) которая выводит отформатированные данные в указанный файл.
Оператор формат имеет следующий синтаксис: