Добрый день. Я сейчас прохожу курс повышения квалификации - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?
|
Библиотеки, пакеты и модули
Специальные блоки
В каждой Perl-программе могут присутствовать исполняемые блоки, фактически являющиеся специальными подпрограммами, которые обрабатываются особым образом. Они имеют зарезервированные имена и записываются заглавными буквами: BEGIN, END, CHECK, INIT. Каждый из таких блоков может присутствовать несколько раз в любом месте программы. Эти блоки вызываются автоматически в определенное время в начале и в конце выполнения Perl-программы.
Блок BEGIN выполняется как можно раньше: во время компиляции сразу после того, как он полностью определен. Если определено несколько блоков BEGIN, то они выполняются в порядке их описания. Они используются командой use для загрузки внешних файлов во время компиляции программы.
Блок END выполняется как можно позже: после того как perl закончил выполнение программы, перед завершением работы интерпретатора. Он выполняется даже в случае аварийного завершения программы. Несколько блоков END выполняются в порядке, обратном их размещению в файле. Блоки END не выполняются, если при запуске Рerl заказана только компиляция (опцией -c ), или если компиляция завершается аварийно. При работе END доступна специальная переменная $?, содержащая код завершения программы, который можно изменить.
Блок CHECK выполняется после того, как Рerl закончил компиляцию программы. Можно определить несколько блоков CHECK, тогда они будут выполняться в порядке, обратном их описанию. Блоки CHECK выполняются, если Рerl запущен с опцией -c только для компиляции программы.
Блок INIT выполняется перед тем, как интерпретатор начнет выполнение программы, поэтому могут использоваться для инициализации модулей. Несколько блоков INIT выполняются в порядке их описания. Поясним последовательность выполнения специальных блоков на коротком примере:
print " 8. выполнение 1\n"; END { print "14. (1-й END)\n" } INIT { print " 5. (1-й INIT)\n" } CHECK { print " 4. (1-й CHECK)\n" } print " 9. выполнение 2\n"; BEGIN { print " 1. (1-й BEGIN)\n" } END { print "13. (2-й END)\n" } CHECK { print " 3. (2-й CHECK)\n" } INIT { print " 6. (2-й INIT)\n" } print "10. выполнение 3\n"; END { print "12. (3-й END)\n" } BEGIN { print " 2. (2-й BEGIN)\n" } INIT { print " 7. (3-й INIT)\n" } print "11. выполнение 4\n";
Сравните результаты запуска этого примера при обычном выполнении и только при компиляции:
Обычное выполнение: Только компиляция (perl -c) 1. (1-й BEGIN) 1. (1-й BEGIN) 2. (2-й BEGIN) 2. (2-й BEGIN) 3. (2-й CHECK) 3. (2-й CHECK) 4. (1-й CHECK) 4. (1-й CHECK) 5. (1-й INIT) 6. (2-й INIT) 7. (3-й INIT) 8. выполнение 1 9. выполнение 2 10. выполнение 3 11. выполнение 4 12. (3-й END) 13. (2-й END) 14. (1-й END)
Использование специальных блоков позволяет программисту гибко организовать контроль над программой на всех этапах ее жизненного цикла - от компиляции до завершения.
Стандартные библиотеки модулей
В поставке Perl имеется большое число стандартных библиотек модулей. Их описание можно прочитать в документации, обратившись к известной утилите:
perldoc perlmodlib
Стандартные модули находятся в библиотечных каталогах дистрибутива Perl и подключаются с помощью команды use. Встроенные системные функции находятся в специальном пакете CORE, поэтому, если в области видимости находится одноименная функция, то чтобы обратиться к встроенной функции, нужно вызвать ее по полному имени, например:
use Cwd 'chdir'; # подключить стандартный модуль chdir '/temp'; # вызвать Cwd::chdir() CORE::chdir '/temp'; # вызвать встроенную функцию chdir
Стандартные модули подразделяются на несколько групп. Одна из них - это модули прагм (pragmatic modules), которые контролируют поведение компилятора и исполняющей системы Perl. В качестве примера таких модулей можно привести constant, lib, locale, strict, utf8, warnings и другие. Другая группа - стандартные модули (standard modules), поставляемые вместе с системой программирования Perl. Приведем примеры стандартных модулей: AutoLoader, CPAN, Cwd, Encode, Exporter, File::Find, Math::BigInt, Time::localtime, Win32 и многие другие.
Следующая группа - это модули расширения (extension modules), написанные на языке C и предназначенные для взаимодействия с операционной системой. Примерами модулей расширения могут служить Socket, Fcntl и POSIX.