Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (36 – Неблокирующий ввод-вывод, часть 14)

предыдущая часть ««»» следующая часть

Строки 38-77. Метод getline (). Это— самая интересная часть модуля. При входе в эту подпрограмму элемент $_[0] (первый параметр в массиве параметров подпрограммы) со­держит скалярную переменную, которая примет считанную строку, например, информацию с веб страницы для которой была выполнена поисковая оптимизация сайта и скорректированы все ключевые моменты. Для изменения этой пере­менной в вызывающем коде мы ссылаемся непосредственно на элемент $ [0], а не копируем

его в локальную переменную обычным образом.

Поскольку операция ввода выполняется в буферизованном режиме, эта подпрограмма должна быть готова сообщить вызывающей подпрограмме о том, какие условия встретились ранее. Работа начинается с проверки флажков eof и error. Если при последнем вызове этой под­программы был обнаружен признак конца файла eof, возвращается числовое значение 0. В ином случае, если была обнаружена ошибка, возвращается значение undef .

Во внутреннем буфере этой подпрограммы уже может находиться полная строка, которая ос­талась после предыдущего чтения. Применяется встроенная функция index () языка Perl для поиска следующей последовательности символов с обозначением конца строки в буфере; функция возвращает информацию о местонахождении этой последовательности. Вместо же­сткого кодирования символов обозначения конца строки, применяется текущее содержимое глобальной переменной $/. Кроме того, поиск можно немного оптимизировать, запомнив, в ка­ком месте он был остановлен в прошлый раз. Эта информация будет храниться в поле index. Результат выполнения функции index () сохраняется в локальной переменной $i.

Строки 49-59. Чтение следующей части данных и обработка ошибок. Если в буферизо­ванных данных отсутствует последовательность символов, обозначающих конец строки, то переменная $i принимает значение -1. В этом случае необходимо прочитать дополнительную часть данных из дескриптора файла и предпринять еще одну попытку поиска конца строки.

2014-08-15 12:22:06

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония