Анимация
JavaScript
|
Главная Библионтека Как видно из данного фрагмента кода, в модуле Net: :Ping предусмотрена функция с именем pingecho. У этой функции два аргумента. Первый - это имя узла сети, который нужно проверить на работоспособность (в данном случае - wwtf.yahoo.com). Второй аргумент указывает, как долго (в секундах) функция pingecho должна ждать ответа. Из-за особенностей языкеП для систем Windows 95/98/NT к моменту написания данной книги (лето 1999) модуль Net: :Ping не работал. Этот модуль зависит от функции alarm, которая не работает в системе windows, Однако фирма Ас-tivestate - главный разработчик Perl для системы Windows - объявила о планах реализации многих недостающих функций для Windows и о внесении соответствующих изменений в Perl. Еще раз, пожалуйста, но по-английски! Модуль English позволяет обращаться к некоторым специальным переменным Perl по их более понятным именам, как показано в следующем примере: use English; while{<>) { print $ARG; В приведенном фрагменте кода конструкция while{<>) обычно считывает одну строку текста из потока STDIN и присваивает его переменной $ . В нашем примере по-прежнему все так и происходит. Но при использовании оператора use English к переменной можно обращаться по имени $AEG. Ниже приведен частичный список специальных переменных и их английских эквивалентов. Специальная переменная мийское название
Полный список специальных переменных и их английских эквивалентов можно найти в электронной документации к модулю English. Дополнительные средства диагностики Модуль diagnostics языка Perl помогает находить ошибки в программе. Если по ходу чтения вы будете учиться языку, набирая примеры из данной книги, то наверняка будете получать от интерпретатора Perl сообщения об ошибках, которые не сможете понять до конца. Например, короткая программа f!/usr/bin/perl-v use strict; pint "Д5тя голуч гсм/спи отгрнвьте CEcfn по sgi::Y helpS support. org\n •; 224 Чть II. углубляемся e Perl заставит Perl выдать следующее предупреждающее сообщение: In string, isupport now must be written as \8support at line 4 Global symbol "Ssupport" requires explicit package name at line 4 Благодаря модулю diagnostics Perl выдает подробные предупреждения и сообщения об ошибках. Можно изменить приведенную выше программу-образец, включив в нее модуль диагностики следующим образом: I!/usr/bin/perl -w use strict; use diagnostics; pcdit ля голу"Е]к моцн опправьпе сорни ПО аДЕесу helpjsupport. огд\п"; В результате такого изменения программы и использования модуля диагностики будет выдано более подробное сообщение: In string, в support пол/must be written as \g support at line 4 Global synbol "gsupport" requires e>plicit package name at ./diag.pl line 5 (#1) (F) Youve said "use strict vars", indicates that all variables must either be lexically scoped (using "my"), or explicitly alified to say which package the global variable is in (using ::). Если вы немного поразмышляете об этих двух сообщениях, то станет ясно, что они связаны. Первое сообщение очевидно. Perl говорит о том, что направлять письма no электронной почте нужно по адресу helpVesupport.CQm. Теперь, после данного объяснения, второе сообщение становится более понятным. Так как б1ла активизирована команда use strict, переменную support следовало объявлять с помощью ту. Но дело в том, что (Isupport - не переменная, а часть электронного адреса, которая просто была неправильно интерпретирована Perl. Буква перед сообщением указывает на тип ошибки. (W) обозначает предупреждение, (D) говорит об использовании устаревшего и не рекомендуемого синтаксиса, (S) - это строгое предупреждение, а (F) - это серьезная ошибка. Программа на Perl продолжает работу при выдаче всех типов сообщений, за исключением (F). В документации по Perl предусмотрено около 60 страниц описания сообщений об ошибках. Если вам трудно понять, что означают краткие сообщения Perl об ошибках, то иногда разобраться в них поможет команда use diagnostics. Полный список сообщений об ошибках и диагностической информации можно найти в разделе perldiag электронной документации по Perl. ПОЛНЫЙ СПИСОК стандартных модулей Пространное описание абсолютно всех модулей, включенных в Perl, выходит за рамки данной книги. Ниже перечислены модули, входящие в стандартную поставку Perl, и дано их краткое описание. Если вы хотите знать, какие операпии выполняет модуль и как он работает, используйте утилиту perldoc, чтобы просмотреть докумеп-тацию к данному модулю. Имя модуля Описание hutoLoader Позволяеег! компилировать функции только по мере необходи- мости . . . : AutoSplit Разделяет модули для автозагрузки Benchmark Позволяет многократно замерять скорость выполнения функций Perl для проведения тестирования производительности программы CGI Разрешает доступ к функциям CGI при программировании сценари- ев для Web-серверов, о которых пойдет речь в части III, "CGI-программирование на Perl", данной книги (mi Обеспечивает доступ к архивам модулей Perl для инсталляции но- вых модулей Carp Генерирует сообщения об ошибках DirHandle Обеспечивает объектный интерфейс к дескрипторам каталогов Env Создает связь между переменными окружения операционной сис- темы и переменными языка Perl Exporter Позволяет написать собственные модули ExtUtils::* Позволяет написать собственные модули или установить имею- щиеся File::* Предлагает дополнительные операции с файлами, такие как File::Copy Позволяет выполнять с именами файлов операции, независимые от операционной системы FileCache Открывает больше файлов, чем обычно позволяет операционная система FindBin Находит имя текущей выполняющейся программы Getopt: !* Позволяет обрабатывать в программе параметры командной строки I18N::Collate Позволяет выполнять сортировку в соответствии с определенным алфавитом IPC::* Обеспечивает взаимодействие между процессами, например двух- или трехуровневый конвейер Math: :* Позволяет использовать расширенные математические библиотеки для выполнения операций с произвольной- точностью над целыми, комплексными числами и числами с плавающей точкой Net::* Позволяет получать информацию об узлах сети. Например, Net::hostent преобразует IP-адреса, такие как 204.71.200.68, в имена узлов сети, например Pod::* Обеспечивает доступ к программам форматирования в стиле ста- рой документации Perl Symbol Позволяет просматривать или изменять собственную таблицу симво- лов Perl Sys:;Hostname Возвращает имя вашего компьютера в сети, соответствующее его IP-адресу Sys::Syslog Позволяет сделать запись в журнале ошибок системы UNIX 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |