| Содержание | Предисловие | В |
Приложение ГТемы, которых мы не коснулисьКак ни странно, даже при таком объеме книги некоторые вопросы все равно остались незатронутыми. Данное приложение содержит полезную дополнительную информацию. Назначение этого раздела — не обучить вас тем вещам, которые перечислены здесь, а просто дать их перечень. За дальнейшей информацией обращайтесь к книгеПолное межпроцессное взаимодействие Да, Perl может оказать значительную помощь в создании сети. Кроме потоковых портов TCP/IP,Да, на основе Perl можно организовать сетевой обмен с использованием портов TCP/IP, доменных портовОтладчик В Perl есть чудесный отладчик, работающий на уровне исходного кода. О нем рассказывается на man-страницеКомандная строка При запуске интерпретатора Perl можно указывать множество ключей командной строки. См. man-страницуДругие операции Помимо упомянутых в книге, используются и другие операции. Например, операция "запятая". Есть также операции манипулирования битами &, I, Имеются также вариации операций, например, допускается использование модификатора д в операции сопоставления. Об этом и многом другом рассказывается на man-странице perlop(l).Другие функции В Perl очень много функций. Мы не собираемся здесь их все перечислять, потому что самый простой способ узнать о нихФункции grep и тарФункция grep выбирает элементы из списка аргументов на основании результата выражения, которое многократно проверяется на@bigpowers = grep $_ > 6, 1, 2, 4, 8, 16; # получает (8, 16) @b_names = grep /^Ъ/, qw(fred baStextfiles = grep -T, <*>; Функция map похожа на grep, но вместо выбора и отклонения элеме@more = map $_ + 3, 3, 5, 7; # получает 6, 8, 10 @square s == map $_ * $_, 1. .10; # квадраты первыхCtriangle - map !..$_, 1..5; # 1,1,2,1,2,3,1,2,3,4,1,2,3,4,5 %sizes = map ( $_, -s ) <*>; # хеш файлов и размеровОперация eval (и s///e)Да, вы можете создать фрагмент кода во время работы программы и выполнить его при помощи функции eval точно так же, как вprint "code line: "; choptScode = <STDIN” ; eval $code; die "eval: $@" if $@; Perl-код можно вставить в заменяющую строку при выполнении операции замены с помощью флага е. Это удобно, если вы хотите включить в заменяющую строку нечто сложное, например, вызов подпрограммы while (о) (s/" (\S+)/$l+l/e; f $1+1 is Perl code, not a string printf; } Функция evai используется также как механизм обработки исключений:eval { some_hairy_routine_that_might_die(Oargs); }; if ($0) ( print "oops... some_hairy died with $@"; 1 Здесь массив $@ пуст до тех пор, пока блок eval работает нормально, а в противном случае этот блок выдает "сообщение о смерти".Из этих трех конструкций (eval "строка", eval { БЛОК }Предопределенные переменные Вы уже знакомы с несколькими предопределенными переменными, например, с переменной $_. Их гораздо больше. В дело их обознаОбработка таблицы символов с помощью *FREDВы можете сделать b псевдонимом для а с помощью операции *Ь =Дополнительные возможности регулярных выражений Регулярные выражения могут иметь "расширенный" синтаксис (в котором пробельные символы не обязательны, поэтому регулярное выражение может разбиваться на несколько строк и содержать обыч Пакеты Если над вашим проектом работает много людей или если вы — большой оригинал, вы можете создать пространство имен переменны$а = 123; # это на самом деле $main::a $main::a++; # та же переprint $a - $roain::a; t выводит 456-124package main; t возврат к первоначальному значению по умолчаниюТаким образом, любое имя с явным именем пакета используется как есть, а все остальные имена считаются принадлежащими текущему пакету, который принят по умолчанию. Пакеты локальны для текущего ф Встраиваемость и расширяемость "Внутренности" Perl определены достаточно хорошо для того, чтобы встраивание компилятора-интерпретатораПоскольку Perl можно получить бесплатно, вы можете написать собственную программу создания электронных таблиц, используя встроенныВопросы безопасности Perl создавался с учетом требований безопасности. Посмотрите в главе 6 книги PrОператоры swithch и caseНет, таких операторов в Perl нет, но их легко создать с помощью базовых конструкций. См. главу 2Прямой ввод-вывод: sysopen, sysread, syswrite, sysseekИногда средства ввода-вывода Perl оказываются слишком высокоуровневыми для стоящей перед вами задачи. В главеКомпилятор PerlХотя мы говорим, что Perl компилирует ваш код перед тем, как его выполнять, эта скомпилированная форма не является "родным" объекПоддержка баз данных Да, Perl может обеспечить непосредственное взаимодействие с коммерческими серверами баз данных, включаяСложные структуры данных Используя ссылки, вы можете создавать структуры данных произвольной степени сложности. Вопросы их разработки рассматриваются в главе 4Указатели на функции Perl может сохранять и передавать указатели на функции посредством записи вида \&funcname, а такжеИ прочее Perl с каждым днем становится все более мощным и полезным, поэтому оперативное обновление посвященной ему документации — |
| Содержание | Предисловие | В |