Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 [ 99 ] 100 101 102 103

print $a - $main::a; # выводит 456-124

package mam; # возврат к первоначальному значению по умолчанию

print $а + $fred::a; # выводит 124+456

Таким образом, любое имя с явным именем пакета используется как есть, а все остальные имена считаются принадлежащими текущему пакету, который принят по умолчанию. Пакеты локальны для текущего файла или блока, и вы всегда можете использовать пакет mam в начале файла. Подробности см. на тап-странице perlsub(l).

Встраиваемость и расширяемость

"Внутренности" Perl определены достаточно хорощо для того, чтобы встраивание компилятора-интерпретатора Perl в другое приложение (так, как это уже сделано с Web-сервером Apache и текстовым редактором vi) или расщирение Perl путем добавления к нему произвольного кода, написанного на С (или имеющего С-подобный интерфейс), стало относительно несложной задачей. Более того, почти третья часть диалоговой документации на Perl посвящена именно вопросам встраивания и расширения этого языка. Подробно эти аспекты освещены на man-страницах perlembed(l), perlapio{\), perlxs{\), perlxstut{\), perlguts{\) и perlcall(l).

Поскольку Perl можно получить бесплатно, вы можете написать собственную программу создания электронных таблиц, используя встроенный Perl для вычисления выражений в ее ячейках и не платя ни цента за всю эту мощь. Радуйтесь.

Вопросы безопасности

Perl создавался с учетом требований безопасности. Посмотрите в главе 6 книги Programming Per/или на тап-странице perlsec{\) материал о "проверке пороков" (taint checking). "Проверка пороков" - это такой вид защиты, когда вы доверяете автору программы, а не лицу, которое ее выполняет - как это часто бывает в UNIX с программами, в которых применяется идентификатор пользователя, и во всех системах с программами, запускаемыми сервером. Модуль Safe, который описан на тап-странице Safe(3) и в главе 7 книги Programming Perl, обеспечивает нечто соверщенно иное - защиту, необходимую при выполнении (как в случае с eval) непроверенного кода.

Операторы swifhch и case

Нет, таких операторов в Perl нет, но их легко создать с помощью базовых конструкций. См. главу 2 книги Programming Perl и man-страницу perlfunc(l).



Пряжой ввод-вывод: sysopen, sysread, sysivrite, sysseek

Иногда средства ввода-вывода Perl оказываются слишком высокоуровневыми для стоящей перед вами задачи. В главе 3 книги Programming Perl и на тап-страницеperlfUnc(l) рассматривается вопрос непосредственного использования базовых системных вызовов для ввода-вывода.

Компилятор Perl

Хотя мы говорим, что Perl компилирует ваш код перед тем, как его выполнять, эта скомпилированная форма не является "родным" объектным кодом. Компилятор Perl, написанный Малькольмом Бити, может создать из вашего Perl-сценария независимый байтовый код или компилируемый С-код. Ожидается, что в версию Perl 5.005 будет включена возможность генерации собственного кода. Подробности см. в материале, представленном на тап-странице perlfaq(3).

Поддержка баз данных

Да, Perl может обеспечить непосредственное взаимодействие с коммерческими серверами баз данных, включая Oracle, Sybase, Informix и ODBC, не считая многих других. Соответствующие модули расширения вы найдете в разделе баз данных в каталоге модулей CPAN.

Сложные структуры данных

Используя ссылки, вы можете создавать структуры данных произвольной степени сложности. Вопросы их разработки рассматриваются в главе 4 книги Programming Perl и на man-страницахperllol(l), perldsc(l) и perlref{\). Если вы предпочитаете объектно-ориентированную структуру данных, обратитесь к главе 5 вышеупомянутой книги и man-страницам perltoot(l) и perlobj(l).

Указатели на функции

Perl может сохранять и передавать указатели на функции посредством записи вида \&funcname, а также вызывать их косвенно посредством записи &$funcptr ($args). Можно даже писать функцгш, которые создают и возвращают новые анонимные функции, как в языках Lisp и Scheme. Такие анонимные функцгш часто называют замыканиями (closures). Подробности см. в главе 2 книги Programming Perl и на man-страницах perlsub{\) и perlfaq7{\).

И прочее

Perl с каждым днем становится все более мощным и полезным, поэтому оперативное обновление посвященной ему документации - довольно сложная задача. (Кто знает, может быть, к дню появления этой книги на полках магазинов уже будет создан Visual Perl?) В любом случае - спасибо, Ларри!



Предметный указатель

Аргументы

Голые блоки

Ассоциативные массивы

Действия

Базовые средства ввода-вывода

Деление с остатком

Базы данных

Дескриптор по умолчанию

- пользовательские

Дескриптор файла по умолчанию

- произвольного доступа с записями

Дескрипторы

фиксированной длины

- каталогов

- с записями переменной длины (текстовые)

- файлов 43,

Библиотека

закрытие

- DBM

использование

- LWP

открытие

Библиотеки

Директивы импорта

Блоки операторов

Возвращаемые значения 40, 127

Выбранный в текущий момент дескриптор файла 162

Глобальные переменные Гнезда

Игнорирование регистра 117

Извлечение и замена подстроки 198

Изменение меток времени 180

Изменение прав доступа 178 Изменение принадлежности файла 179

Индексные ссылки 34

Интерполяция переменных 63, 118

Предметный указатель



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 [ 99 ] 100 101 102 103